HTTP协议实质是Client跟Server通讯的消息格式的约定。
HTTP消息其实就是按照协议约定的格式的字符串。
CRLF 回车符换行符
1. HTTP请求消息格式
请求行 + 通用信息头 + 请求头 + 实体头 + 报文主体
eg: GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi
1.1 请求行
- 格式:
Method Request-URI HTTP-Version CRLF
[请求方式] [请求资源的uri] [HTTP协议版本] [回车符换行符] - eg:
GET /form.html HTTP/1.1 (CRLF)
POST /reg.jsp HTTP/1.1 (CRLF)
Method说明见HTTP协议之:请求方法
1.2 消息报头(通用信息头 + 请求头 + 实体头)
不同种类的报头的组合 见HTTP协议之:消息报头
1.2 报文主体
请求参数
2. HTTP响应消息格式
状态行 + 通用信息头 + 响应头 + 实体头 + 报文主体
HTTP响应消息结构eg: HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain
2.1 状态行
- 格式:
HTTP-Version Status-Code Reason-Phrase CRLF
[HTTP协议的版本] [状态码] [状态码的文本描述] [回车符换行符] - eg:
HTTP/1.1 200 OK (CRLF
状态码说明见HTTP协议之:状态码
2.2 消息报头(通用信息头 + 响应头 + 实体头)
不同种类的报头的组合 见HTTP协议之:消息报头
2.3 报文主体
服务器返回的资源的内容
网友评论