在浏览器中输入URL并回车后都发生了什么?

震惊脸,从没想过这是一个问题!

然而,这是前端小白必须要深刻了解的问题。前端面试经常问道,下面的每个阶段都可以大做文章!!!

在浏览器网址栏输入baidu.com,点击enter出现百度搜索引擎。在这很短的时间,有下面一系列过程

1、输入baidu.com(这是一个域名,方便记忆)

2、根据输入的域名解析出目的服务器的ip(域名解析的递归、迭代过程)

3、建立TCP连接(为什么是三次握手)

4、浏览器发送http请求(请求行,请求体是怎样的)

5、服务器响应请求(响应报文是怎样的)

6、浏览器渲染页面(css树,dom树构造过程)

7、断开连接(四次挥手)

TCP连接(三次握手)

第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过四次握手(过程就不细写 了,就是服务器和客户端交互,最终确定断开)。

上面过程写的比较粗略,只是让大家有一个基本印象。具体每个过程都有很多细节,面试的时候,如果在某一个细节上,能讲的很透彻,能给面试官留下好印象。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值