导语:
本文用有趣生动的语言,讲述一下浏览器输入url后发生了什么,计算机小白也能看懂。
浏览器输入url后
- 一,DNS解析
- 二,建立TCP连接(三次握手)
- 三,发送http请求
- 四,服务器处理请求
- 五,返回响应结果
- 六,关闭TCP连接(四次挥手)
- 七,浏览器渲染页面
一,DNS解析
例如我们输入了www.baidu.com,一共有六个过程。但是说白了就是把它变成类似于172.12.342.222这样的IP地址,浏览器就能去找他了。
不过我们还是讲一讲这六个过程是什么吧!
就这样一个圈回来就拿到ip地址去访问了。easy
二,建立TCP连接(三次握手)
简单的讲就是,一个人(用户浏览器)走到银行柜台,说你叫个人来给我办理业务,一个营业员(服务器)出来了。
那个客户说,我要办理业务(发送一个SYN),营业员说我收到了你的请求(回复一个SYN+ACK),客户说我也收到了你想为我服务的回答(回复一个ACK),然后就开始服务了。一共三次握手。
那么问题来了,为什么不是两次,四次五次呢?
你要想,如果营业员说好的我来为你服务,但是客户没听到,客户就会不耐烦,再说一次我要办理业务,于是又一个营业员就出来了。以此往复,营业员们都在呆呆的站着,客户业务没能办理,等到营业员站的太多了,服务器不就宕机了?所以一定要三次握手,第三次的时候,没收到客户的回应就回去休息了。
啊,是不是说的很简单形象。
三,发送http请求
这时候就是我们所熟知的api调用了,比如,https://www.baidu.com。就是调用了后台接口了,服务器就要开始运作起来,去准备数据返回。
四,服务器处理请求
服务器就受到请求后,就会返回数据,比如我的上一个接口,可能就要返回了一个HTML页面等等。
五,返回响应结果
服务器把它要返回的东西返回到浏览器上。
六,关闭TCP连接(四次挥手)
还是那对客户和营业员,这次它们已经开始办理业务了,现在已经办理好一个业务,客户说我办完我的业务了(发送一个FIN),营业员说好的(ACK),过了一会儿,营业员又说我也办理好了你的业务了,没事我就先走了(发送一个FIN),客户说好(ACK)。然后就进入TIME_WAIT状态(保留现场业务信息),等到2MSL时间过了,才能把这个柜台信息清理了(连接最终关闭,并且把业务信息都清理了)。
这里双方都各发送了一个FIN和ACK,都得想对方表示想溜了,对方都同意了,它们才能都走了。
七,浏览器渲染页面
浏览器就把刚刚拿到的html页面给渲染出来了。至此url输入后,发生的事情都结束了。
建议收藏,不然刷着刷着就可能找不到了。
同时你的点赞是对我最大的鼓励,谢谢。