响应报文结构
响应报文的首部内容由以下数据组成:
- 状态行 —— 包含表明响应结果的状态码、原因短语和 HTTP 版本。
- 首部字段 —— 包含表示请求的各种条件和属性的各类首部。(通用首部、响应首部、实体首部以及RFC里未定义的首部如 Cookie 等)
响应报文的示例,如下:
响应报文示例
五、HTTP 报文首部之请求行、状态行1.请求行
举个栗子,下面是一个 HTTP 请求的报文:
GET /index.htm HTTP/1.1 Host: sample.com
其中,下面的这行就是请求行,
GET /index.htm HTTP/1.1
- 开头的 GET 表示请求访问服务器的类型,称为方法;
- 随后的字符串 /index.htm 指明了请求访问的资源对象,也叫做请求 URI;
- 最后的 HTTP/1.1,即 HTTP 的版本号,用来提示客户端使用的 HTTP 协议功能。
综合来看,大意是请求访问某台 HTTP 服务器上的 /index.htm 页面资源。
2.状态行
同样举个栗子,下面是一个 HTTP 响应的报文:
HTTP/1.1 200 OK Date: Mon, 10 Jul 2017 15:50:06 GMT Content-Length: 256 Content-Type: text/html <html> ...
其中,下面的这行就是状态行,
HTTP/1.1 200 OK
- 开头的 HTTP/1.1 表示服务器对应的 HTTP 版本;
- 紧挨着的 200 OK 表示请求的处理结果的状态码和原因短语。
1.首部字段概述
先来回顾一下首部字段在报文的位置,HTTP 报文包含报文首部和报文主体,报文首部包含请求行(或状态行)和首部字段。
在报文众多的字段当中,HTTP 首部字段包含的信息最为丰富。首部字段同时存在于请求和响应报文内,并涵盖 HTTP 报文相关的内容信息。使用首部字段是为了给客服端和服务器端提供报文主体大小、所使用的语言、认证信息等内容。
2.首部字段结构
- HTTP 首部字段是由首部字段名和字段值构成的,中间用冒号“:”分隔。
- 另外,字段值对应单个 HTTP 首部字段可以有多个值。
- 当 HTTP 报文首部中出现了两个或以上具有相同首部字段名的首部字段时,这种情况在规范内尚未明确,根据浏览器内部处理逻辑的不同,优先处理的顺序可能不同,结果可能并不一致。
3.首部字段类型
首部字段根据实际用途被分为以下4种类型:
4.通用首部字段(HTTP/1.1)