Http的请求流程

一次Http请求过程

客户端在输入域名后通过DNS服务器解析得到IP地址;得到IP地址后,通过三次握手进行TCP/IP连接;之后就进行通信。

TCP三次握手

TCP在建立连接的时候需要三次握手,第一次握手将Client标志位SYN设置为1,随机产生一个值seq=J;Server在收到Client传来的SYN时,必须进行确认(ack=J+1),同时自己也发送一个SYN包,此Server进入SYN-RECV状态;Client在收到SYN+ACK包后向Server发送确认包ACK,发送完成后Client和Server进入连接状态,这就完成了三次握手,开始通信。

TCP四次握手

TCP在断开连接的时候需要进行四次握手,如上图所示。由于TCP是全双工的,每个方向都需要单独关闭连接,当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。

第1步,Client发送FIN数据包来关闭Client到Server的连接;第2步,Server收到FIN包后回复一个ack包,Servicer进入CLOSE_WAIT状态;第3步,Server发送一个FIN包用来断开Server到Client的连接;第4步,Client收到Server发来的FIN包后,回复一个ACK,至此连接全部断开。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容