知识点:http协议:它是基于tcp协议的,浏览器访问服务器,服务器把资源回给浏览器,这个过程都是遵循http协议的,否则无法完成,http早些年是1.0版本,现在基本上都是1.1版本了,俩个版本的区别就是1.0使用的是短连接,早些年的网站比较简单,短连接通信没啥大问题,但是现在的网站各种炫酷复杂,所以使用1.1版本的长连接,提高通信效率。那么,他的具体通信过程是怎样的呢?也就是我们常说的三次握手和四次挥手。
1、直接看图:
三次握手:
1:浏览器告诉服务器,我要和你建立链接,呆着位码syn=1和一个随机的数据包seq1_num=123发给服务器.
2:服务器收到1中的消息后,也要告诉浏览器我收到了,服务器会带着ack=1和ack2_num=seq1_num+1,还有自己的随机数据包seq2_num=789会送给浏览器.
3:浏览器收到服务的响应数据,会判断ack2_num是否在自己发过去的seq1_num上加了1,是的话,他要给服务器回话,告诉服务器,这些数据我验证了,是对的,浏览器会带着服务器发过来的随机码seq2_num+1和ack发过去,服务器收到后确认seq2_num+1和ack的值,建立连接.
四次挥手:
一般断开连接都是浏览器主动先断开的,所以,
1:浏览器调用close()关闭发通道,告诉服务器,我不会再给你发数据了.
2: 服务器收到后,会关闭发送消息的方法(socket.recv())并回送给浏览器我收到你的消息.
3:同时关闭服务器的接收通道并回送给浏览器.
4:浏览器收到服务器的消息后关闭收消息的通道,并回送一条确认消息给服务器告诉服务器它收到了,服务器收到后,关闭服务器发送通道.