从浏览器地址栏输入URL到页面展示发生的过程
1、浏览器通过DNS域名解析到ip地址
2、浏览器通过TCP协议建立到服务器的TCP连接(TCP三次握手)
TCP三次握手:
1)客户端发送请求连接、请求报文
2)服务端接受连接后回复ACK报文,并为此次连接分配资源
3)客户端接收到ACK报文后也向服务端发送一个ACK报文,并分配资源,由此TCP连接就建成了
3、客户端(浏览器)向web服务器端发送Http协议包,请求服务器里的资源文档
4、服务器向客户端发送Http协议应答包
5、客户端和服务器断开连接(TCP四次挥手),客户端开始解析处理HTML文档
TCP四次挥手:
1)客户端发起中断连接请求,也就是发送FIN报文,告知服务端:“已经没有数据要发送给你了,但是如果你还有数据没有发送完,别急着关闭(Socket),可以继续发送”.
2)服务端接收到FIN报文后,发送ACK报文,告知客户端,你的消息我已收到,但是我还没有准备好,请等待。此时客户端会进入等待状态(FIN_WAIT),等待服务端的FIN报文
3)当服务端确定数据已经发送完成,向客户端发送FIN报文,告知客户端数据已发送完成,可以关闭连接
4)客户端收到FIN报文后知道可以关闭连接,但是他不相信网络,怕服务端不知道关闭,于是会向服务端发送ACK报文并进入TIME_WAIT状态,如果服务端没有收到可以重传。服务端收到ACK后知道可以断开连接了。客户端在等待了2MSL后没有收到回复,则证明服务端已经关闭连接了,那客户端也可关闭连接了。TCP连接也就关闭