1.管线化技术(pipelining),在上一篇中我们提到持久连接。
由于在持久连接出现之前,客户端每发送一次请求得到响应后就要中断一次TCP连接,这样就导致了我们
无法并行发送多个请求,因为只有在等待上一个请求结束后才可以继续发送请求。
持久连接使得多数请求以管线化的方式发送成为可能,这意味着不用等待响应即可发送下一个请求。
总的来讲,持久连接只是减少了TCP不断重复连接和中断所带来的时间成本,但仍然要等到得到响应
后才可以发送下一个请求,由于管线化技术可以并行发送多个请求而不用等待上一个请求的响应,
持久连接可以让请求更快结束,而管线化技术比持久连接更快,请求数越多,时间差就越明显。
2.HTTP报文
概念介绍:用于HTTP协议交互的信息被称为HTTP报文,客户端发出的HTTP报文称为请求报文,
服务器端的叫做响应报文。
HTTP报文大致可以分为报文首部和报文主体两块,通常并不一定要有报文主体。
接下来谈一下报文主体和实体主体之间
通常情况报文主体等于实体主体,只有在传输过程中进行编码操作时,实体主体的内容发生变化,才导致
它和报文主体产生差异。那个这个差异是什么,我个人理解是两者的编码不同。
那么为什么要进行编码呢,当我们向待发送邮件增加附件时,为了使邮件容量变小,速度更快效率更高,
我们会对内容进行编码,常用的有gzip,compress,deflat,identity(不进行编码)。
在HTTP的通信过程中,请求的编码实体资源尚未全部传输完成之前,浏览器无法显示请求页面,在传输
大容量数据时,通过把数据分割成多块,能够让浏览器逐步显示页面。
这种把实体主体分块的功能成为分块传输编码(Chunnked Transfer Coding),被分割的块用十六进制来
标记块的大小,最后一块用0(CR + LF)来标志,客户端接收到分块后由客户端负责解码,恢复到编码
前的实体主体。