每天做个总结吧,坚持就是胜利!
/**
@date 2021-06-26
@description 《图解HTTP》-第三章-HTTP报文内的HTTP信息
*/
壹
- HTTP通信过程包括从客户端发往服务器端的请求以及从服务器端返回到客户端的响应
- 用于HTTP协议交互的信息称为
HTTP报文,客户端的请求报文及服务器端的响应报文,是由多行数据构成的字符串文本 - HTTP报文大致可分为报文首部及报文主体两部分,不一定有报文主体
4. 请求报文和响应报文的
首部内容
请求行:包含用于请求的方法,请求URI和HTTP版本
状态行:包含表明响应结果的状态码,原因短语和HTTP版本
首部字段:包含表示请求和响应的各种条件和属性的各类首部,一般有四种首部:通用首部,请求首部,响应首部,实体首部
-
HTTP在传输过程中可以按照数据原貌
直接传输,也可以在传输过程中通过编码提升传输效率;通过在传输时编码,能有效地处理大量访问请求,但是会消耗更多的CPU资源 -
HTTP
报文的主体作用是用于传输请求或响应的实体主体,通常报文主体等于实体主体,只有当传输中进行编码操作时,实体主体的内容发生变化,就与报文主体产生差异 -
内容编码指明应用在实体内容上的
编码格式,并保持实体信息原样压缩,内容编码后的实体由客户端接收并解码常见的内容编码:
a. gzip(GNU zip) b. compress(UNIX系统的标准压缩) c. deflate(zlib) d. identity(不进行编码)
8. HTTP通信过程中,请求的编码实体资源尚未全部传输完成之前,浏览器无法显示请求页面,在传输大容量数据时,通过把数据
分割成多块,能够让浏览器逐步显示页面,把实体主体分块的功能称为分块传输编码(Chunked Transfer Coding)
9.
MIME(Multipurpose Internet Mail Extensions-多用途因特网邮件扩展)允许邮件处理文本、图片、视频等多个不同类型的数据,MIME使用多部分对象集合方法来容纳多份不同类型的数据
10. HTTP协议也采纳了多部份对象集合,发送的报文主体中可包含多类型实体,通常在图片或文件上床时使用;使用时需要在首部字段里加上Content-type
多部分对象集合包含的对象:
a. multipart/form-data:在Web表单文件上传时使用
b. multipart/byteranges:状态码206(Partial Content-部分内容)响应报文包含了多个范围的内容时使用
- 为了实现下载过程中的
可恢复机制,需要指定下载的实体范围,这样发送的请求叫做范围请求(Range Request),可以只请求指定范围的资源,使用时使用首部字段的Range来指定byte范围,响应返回206状态码
5001~10000范围的字节:Range: bytes=5001-10000
5001之后的字节:Range: bytes=5001-
一开始到3000和5000~7000字节的多重范围:Range: bytes=-3000, 5000-7000
-
内容协商:客户端与服务器端就响应的资源内容进行交涉,然后提供给客户端最为合适的资源,以响应资源的语言,字符集,编码方式等做为判断的基准 判断基准:请求报文的某些首部字段
Accept Accept-Charset Accept-Encoding Accept-Language Content-Language分类:
a. 服务器驱动协商:由服务器端进行内容协商,以请求的首部字段为参考,在服务器端自行处理 b. 客户端驱动协商:由客户端进行内容协商,用户从浏览器显示的可选项列表手动选择,也可以利用Javascript脚本自动选择 c. 透明协商:服务器驱动和客户端驱动的结合体,由服务器端和客户端各自进行内容协商