HTTP 报文
用于 HTTP 协议交互的信息被称为 HTTP 报文。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应报文。HTTP 报文本身是由多行(用 CR + LF 作换行符)数据构成的字符串文本。
HTTP 报文大致可分为报文首部和报文主体两块。两者由最初出现的空行(CR + LF)来划分。通常,并不一定要有报文主体。
报文首部 |
---|
空行(CR + LF) |
报文主体 |
- 报文首部:服务器端或客户端需要处理的请求或相应的内容及属性
- CR + LF:CR(Carriage Return,回车符:16 进制 0x0d)和 LF(Line Feed,换行符:16 进制 0x0a)
- 报文主体:应被发送的数据
请求报文
GET / HTTP/1.1 | 请求行 |
---|---|
Host: hackr.jp User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: ja,en-us;q=0.7,en;q=0.3 Acceptt-Encoding: gzip, deflate DNT: 1 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache |
各种头部字段 |
空行(CR + LF) |
- 请求行:请求的方法 + 请求 URI + HTTP 版本 (空格分隔)
- 首部字段:包含表示请求和响应的各种条件和属性的各类首部。
- 一般有 4 种首部,分别是:通用首部、请求首部、响应首部和实体首部。
响应报文
HTTP/1.1 200 OK | 状态行 |
---|---|
Date: Fri, 13 Jul 2012 02:45:25 GMT Server: Apache Last-Modified: Fri, 31 Aug 2007 02:02:20 GMT ETag: “45bael-16a-46d776ac” Accept-Ranges: bytes Content-Length: 362 Connection: close Content-Type: text/html |
各种头部字段 |
空行(CR + LF) | |
![]() |
报文主体 |
- 状态行:HTTP版本 + 状态名 + 响应结果(空格分隔)
- 首部字段:包含表示请求和响应的各种条件和属性的各类首部。
- 一般有 4 种首部,分别是:通用首部、请求首部、响应首部和实体首部。