报文分为 请求报文响应报文

报文结构


HTTP报文组成

分为 报文首部报文主体 两块,两者用空行(CR+LF)划分,通常不一定要有报文主体

报文首部
空行(CR+LF)
报文主体

请求报文的报文首部组成

请求行
请求首部字段
通用首部字段
实体首部字段
其他

响应报文的报文首部组成

状态行
响应首部字段
通用首部字段
实体首部字段
其他

案例

HTTP/1.1 200 OK 请求行/状态行
Host: hackr.jp 首部字段
User-Agent: Mozilla….. 首部字段
空行(CR+LF)
<htm xmlns=”….”…… 报文主体

编码提升传输速率


编码

  • 报文主体

    报文主体用于传输请求或响应的实体主体

  • 实体主体

    实体主体是请求或响应的有效载荷被传输,由实体首部实体主体组成

通常情况下报文实体等于实体实体

但是如果进行编码后,报文主体传输的实体主体被编译发生变化,因此报文主体这部分被编译的实体主体和服务端或客户端发送的数据不一致,因此实体主体和报文主体产生差异–如今实体主体是编码数据

编码就是通过某种方式用ZIP压缩文件,内容编码有许多类型

分块

在HTTP通信过程中,请求的编码实体资源尚未全部传输完成时,浏览器无法显示请求页面(资源过大)

就是把数据分割成很多快,能够让浏览器逐步显示页面

多部分对象集合


  1. multipart/form-data

    Web文件上传

  2. multipart/byteranges

    状态码206(partial content)

内容协商


同一个URL同一个页面同一种资源显示不同的语言页面

这就需要内容协商

客户端和服务端进行协商

  1. 服务器驱动协商

    由服务器进行内容协商,以请求的首部字段为参考

  2. 客户端驱动协商

    由客户端进行内容协商的方式,用户从浏览器显示的可选项列表中手动选择

  3. 透明协商

    服务器和客户端驱动的结合体,各自协商

资源大小


在首部字段中加上

Range: bytes= 多少 - 多少