信不信我用2分钟让你明白,浏览器输入url后的事

导语:
本文用有趣生动的语言,讲述一下浏览器输入url后发生了什么,计算机小白也能看懂。

一,DNS解析

例如我们输入了www.baidu.com,一共有六个过程。但是说白了就是把它变成类似于172.12.342.222这样的IP地址,浏览器就能去找他了。

不过我们还是讲一讲这六个过程是什么吧!

在这里插入图片描述
就这样一个圈回来就拿到ip地址去访问了。easy

二,建立TCP连接(三次握手)

简单的讲就是,一个人(用户浏览器)走到银行柜台,说你叫个人来给我办理业务,一个营业员(服务器)出来了。

那个客户说,我要办理业务(发送一个SYN),营业员说我收到了你的请求(回复一个SYN+ACK),客户说我也收到了你想为我服务的回答(回复一个ACK),然后就开始服务了。一共三次握手。

那么问题来了,为什么不是两次,四次五次呢?

你要想,如果营业员说好的我来为你服务,但是客户没听到,客户就会不耐烦,再说一次我要办理业务,于是又一个营业员就出来了。以此往复,营业员们都在呆呆的站着,客户业务没能办理,等到营业员站的太多了,服务器不就宕机了?所以一定要三次握手,第三次的时候,没收到客户的回应就回去休息了。

啊,是不是说的很简单形象。

扫描二维码关注公众号,回复: 11595999 查看本文章

三,发送http请求

这时候就是我们所熟知的api调用了,比如,https://www.baidu.com。就是调用了后台接口了,服务器就要开始运作起来,去准备数据返回。

四,服务器处理请求

服务器就受到请求后,就会返回数据,比如我的上一个接口,可能就要返回了一个HTML页面等等。

五,返回响应结果

服务器把它要返回的东西返回到浏览器上。

六,关闭TCP连接(四次挥手)

还是那对客户和营业员,这次它们已经开始办理业务了,现在已经办理好一个业务,客户说我办完我的业务了(发送一个FIN),营业员说好的(ACK),过了一会儿,营业员又说我也办理好了你的业务了,没事我就先走了(发送一个FIN),客户说好(ACK)。然后就进入TIME_WAIT状态(保留现场业务信息),等到2MSL时间过了,才能把这个柜台信息清理了(连接最终关闭,并且把业务信息都清理了)。

这里双方都各发送了一个FIN和ACK,都得想对方表示想溜了,对方都同意了,它们才能都走了。

七,浏览器渲染页面

浏览器就把刚刚拿到的html页面给渲染出来了。至此url输入后,发生的事情都结束了。

在这里插入图片描述

建议收藏,不然刷着刷着就可能找不到了

同时你的点赞是对我最大的鼓励,谢谢。

猜你喜欢

转载自blog.csdn.net/gitchatxiaomi/article/details/108202958