第三章 HTTP报文内的HTTP信息
3.1 HTTP报文
- 请求端的请求报文
- 响应端的响应报文
HTTP报文本身是由多行(用CR+LF作换行符“回车+换行”)数据构成的字符串文本
3.2 请求报文及响应报文的结构
首部字段:通用首部、请求首部、响应首部和实体首部
3.3 编码提升传输速率
3.3.1 报文主体和实体主体的差异
- 报文(message)
是HTTP通信中的基本单位,由8位组字节流(octet sequence,其中octet为8个比特)组成,通过HTTP通信传输。 - 实体(entity)
作为请求或响应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体组成。 - 负载(英语:Payload)是数据传输中所欲传输的实际信息,通常也被称作实际数据或者数据体。信头与元数据,或称为开销数据,仅用于辅助数据传输。
- 头(header)指的是在一块数据存储或传输之际在头追加的数据,这些信息是对数据区的描述。
- 元数据(英语:metadata)……为描述其他数据信息的数据。
简单来说,实体主体是我们想要传输的实际信息,实体首部是对该信息的描述,而实体和其它一些信息(请求行/状态行、各种首部字段等等)组织成报文进行传输。
3.3.2 压缩传输的内容编码
-
gzip(GNU zip)
-
compress(UNIX系统的标准压缩)
-
deflate(zlib)
-
identity(不进行编码)
3.3.3 分割发送的分块传输编码
分块传输编码将实体主体分成多个部分(块),每一块会用十六进制来标记块的大小,而实体主体的最后一块会使用“0(CR+LF)”来标记。
3.4 发送多种数据的多部分对象集合
采用MIME(Multipurpose Internet Mail Extensions,多用途因特网邮件扩展)机制,允许处理多个不同类型的数据。
3.5 获取部分内容的范围请求
实现能从之前下载中断处恢复下载,通过范围请求实现(指定下载的实体范围)。
3.6 内容协商返回最合适的内容
内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为适合的资源。
- 服务器驱动协商
- 客户端驱动协商
- 透明协商