输入URL到页面加载显示完成的过程及三次握手四次挥手

61 篇文章 1 订阅
18 篇文章 2 订阅

一个页面从输入URL到页面加载显示完成,这个过程中发生了什么

1.浏览器补全URL地址

在输入完URL之后,浏览器会自动检查该地址是否完整,例如是否有添加https协议,若发现不完整,会自动补全。

2.向DNS查询IP地址

每个域名都对应一个或多个提供相同服务服务器的 IP 地址,只有知道服务器 IP 地址才能建立连接,所以需要通过 DNS 把域名解析成一个 IP 地址。

3.得到IP地址后,建立连接,进行三次握手

每次建立连接前,客户端和服务端都要先进行三次对话才开始正式传输内容。

4.向该IP地址发送请求

客户端会通过IP地址向服务端发送一个GET请求,服务端会在80端口接收到这个请求并作出响应。

5.服务器在80端口接收请求,传送相应内容至浏览器
6.浏览器解析内容,并继续搜索页面内是否有请求,有的话继续通过IP地址发送至服务器
7.接受完从服务器发送至浏览器的内容之后,浏览器渲染网页,把网页内容呈献给用户
8.客户端与服务端断开连接,进行四次挥手,每次断开连接前,客户端和服务端都要先进行四次对话才正式断开连接。

什么是 TCP 连接的三次握手

TCP 是因特网中的传输层协议,使用三次握手协议建立连接,完成三次握手,客户端与服务器开始传送数据。
第一次握手:建立连接时,客户端发送 syn 包到服务器,并进入 SYN_SENT 状态,等待服务器确认。(客户端:我要连接你了,可以吗?)
第二次握手:服务器收到 syn 包,必须确认客户的 SYN,同时自己也发送一个SYN 包。(服务端:嗯,我准备好了,连接我吧。)
第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包ACK(客户端:那我连接你咯)
此包发送完毕,客户端和服务器进入 ESTABLISHED(TCP 连接成功)状态,完成三次握手。

什么是 TCP 连接的四次挥手

(1)主机向服务器发送一个断开连接的请求。(不早了,我该走了)
(2)服务器接到请求后发送确认收到请求的信号。(知道了)
(3)服务器向主机发送断开通知(我也该走了)。
(4)主机接到断开通知后断开连接并反馈一个确认信号(嗯,好的),服务器收到确认信号后断开连接。

为什么需要三次握手

为了防止已失效的连接请求报文段突然有送到了服务器,因而产生错误,假设两次握手时,客户发出的第一个请求连接报文段在某一网络节点长时间滞留,以致延误到连接释放后才到达服务器。服务器收到失效的连接请求报文段后,认为是客户又发出一次新的连接请求。 于是向客户发送确认报文段,同意建立连接,此时在假定两次握手的前提下,连接建立成功。这样会导致服务器的资源白白浪费。

为什么需要四次挥手

TCP 协议是全双工通信,这意味着客户端和服务器端都可以向彼此发送数据,所以关闭连接是双方都需要确认的共同行为,假设是三次挥手时,首先释放了客户到服务器方向的连接,此时 TCP 连接处于半关闭状态,这时客户不能向服务器发送数据,而服务器还是可以向客户发送数据。如果此时客户收到了服务器的确认报文段后,就立即发送一个确认报文段,这会导致服务器向客户还在发送数据时连接就被关闭。这样会导致客户没有完整收到服务器所发的报文段。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值