图解HTTP--03--http报文内的信息
一、报文
1、报文格式
2、报文分类
(1)请求报文
(2)响应报文
二、HTTP传输数据时,可以按照原样进行传输,也可以对数据进行编码,能够有效的处理大量打访问请求。进行编码也意味着会有更多的CPU消耗
1、报文:HTTP通信的基本单位,8位字节流组成
2、实体:作为请求或响应的有效载荷数据被传输
HTTP报文的主体用于传输请求或响应的实体主体。一般情况下报文主体与实体是相等的,但当进行了编码之后,实体内容发生了变化,报文主体与实体就不一致了。
3、内容编码----压缩传输
常见内容编码:
gizp
compress (UNIX系统的标准压缩)
deflate
identity(不进行压缩)
4、分块传输编码-----分割发送
把实体主体分块。(传送大容量数据)
每一块会用16进制来标记块的大小,实体主体的最后一块会用“0(CR+LF)”来标记。使用分块传输编码的实体会由接收的客户端负责解码,恢复到编码之前的原样。
HTTP/1.1中存在一种称为传输编码的机制,它可以在通信时按照某种编码方式传输,但只定义作用域分块传输编码中。
5、多部分对象集合-----发送多种数据
HTTP发送的一份报文主体内可以包含多类型实体。(文本、视频、图片)
在HTTP报文中使用多对象集合时,需要在首部字段里加上Content-type。
多类型对象集合包含的对象如下:
mutipart/form-data:在web表单上传时使用
mutipart/byteranges:状态码206响应报文包含了多个范围的内容时使用
6、范围请求----获取部分内容
以前:下载资源时,如果遇到网络中断的情况,那就必须要重头开始,就需要一种机制可以使下载从中断处开始。
范围请求-----指定范围发送的请求叫做范围请求
7、内容协商-----返回最合适的内容
内容协商机制:客户端和服务端就响应资源内容进行交涉,然后提供给客户端最为合适的资源。(资源的语言字符集、编码等)
Accept
Accept-Charset
Accept-Encoding
Accept-Language
Content-Language
内容协商技术的类型:
(1)服务端驱动协商:以请求的首部字段为参考,在服务端自动处理
(2)客户端驱动协商:用户从浏览器显示的可选项列表中手动选择。如自行切换成PC版页面或手机版页面
(3)透明协商:是服务器驱动和客户端驱动的结合体,是由服务端和客户端各自进行内容协商的一种方法。