浏览器请求数据过程

客户端向服务器请求数据,分为几个步骤

1. 客户端将域名发送给DNS,DNS解析出Ip地址,再返还给客户端;

2. 客户端拿到了Ip地址,就向服务器发送http请求,期间经历三次握手,建立TCP连接

三次握手:1. 客户端发送连接、请求报文;

     2. 服务端接受连接后回复ACK报文,并为这次连接分配资源;

       3. 客户端收到报文后,也向服务器发送ACK报文,并分配资源,这样TCP连接就建立了。

 

注:ACK报文是用来确认发来的数据已接受无误。

3. 服务器向客户端发送HTTP协议应答包;

4. 客户端和服务器断开,期间经历四次挥手,之后客户端开始解释处理HTML文档

四次挥手: 1. 客户端发起中断连接请求,也就是发送FIN报文,服务器接受到FIN报文后,FIN报文的意思是说“我客户端已经没有数据要发送给你了,但是如果你还有数据没有发完,可以不着急关闭,可以继续发送数据”;

         2. 服务器发送ACK报文,告诉客户端,“你的请求我收到了,但是我还没有准备好,请继续等我的消息”;

      wait: 这个时候客户端进入FIN-WAIT状态,继续等待服务端的FIN报文;

      3. 当服务端确定数据已发送完毕,就向客户端发送FIN报文,告诉客户端,“我的数据已经发送完了,准备好关闭连接了”;

      4. 客户端收到FIN报文后,就知道已经可以关闭连接了,但是他还是不相信网络,怕服务端不知道可以关闭了,所以发送ACK报文后进入TIME_WAIT状态,如果服务端没有接受到ACK则可以重传。服务端收到ACK后,就知道可以断开连接了。客户端等待了2MSL后依然没有收到回复,则证明服务端已经断开连接了,然后客户端也断开了来连接。这样TCP连接就关闭了。

 

 

转载于:https://www.cnblogs.com/lanpangci/p/9631859.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值