前言
这边是承接上文深入解析Http请求背后的秘密(上)而写的,主要讲解在一次HTTP请求过程中,我们客户端已经创建好和服务器的连接通道之后,正式发送数据的过程。主要分两步:请求的发送和应答、断开连接。
由于篇幅有限,我尽可能抓我们平时都会接触到的内容来做解析,一些不太需要了解的,就简单说明一下了,如果对你有用,记得一键三连哟~
一、请求的发送和应答
当我们创建好Http的连接时,接下来就是开始真正的发送我们的请求数据了,应用程序将数据发送到协议栈后,协议栈会暂时将数据放到发送缓冲区,等待应用程序的下一段数据。然后到达一定的数量之后,一次性发送出去,这样是为了充分利用每个网络包的容量。但是这样就会加长每次发送的等待时间,最终导致请求的延时,所以需要综合考虑,不同的操作系统对此的处理方式不同,主要就是考虑两点因素的平衡:网络包能容纳的最大长度(MTU)以及等待时间。像浏览器这种对时间要求较高的,一般发送缓冲区之后就需要即刻发送出去,其中发送的整个包的大致结构如下。