不要再在面试问我:输入URL到加载页面经历什么了

版权声明:转载的话和我说一声 https://blog.csdn.net/holiday19950913/article/details/86218691

在面试的时候考官经常会问这样一道题,请问从输入URL到加载页面经历什么?

被问了听多次的,所以根据我了解的知识以及理解回答一下吧

回答:

这个过程大概会有如下几个步骤:

1.输入URL      这个URL结构为    scheme://domin:port/path/filename       port为端口号,默认为80端口

2.DNS解析(将域名解析为IP的过程)

    过程(查询到了终止查询过程):    

        A.查询浏览器的DNS缓存(一张键值对的映射表)

        B.查询操作系统的DNS缓存

        C.查询操作系统的host文件

        D.查询本地运营商有没缓存,没有再迭代查询根域名服务器,顶级域名服务器,负责具体域名的服务器,其中某一个查询到了终止迭代过程

3.拿到IP后,建立TCP连接,这时候会有一个3次握手的过程

        ① 客户端向服务器发送连接的请求

        ② 服务器端收到客户端的请求,并且返回同意建立连接的通知

        ③ 服务器端确认收到通知

4.通过建立的TCP连接发送http请求(get方法)

5.拿到html页面,开始解析,同时解析到css,图片,JS文件的时候,发送请求去下载

     此时渲染引擎构建DOM树,解析CSS后构建渲染树

     JS引擎解析JS代码,添加交互效果

6.断开TCP连接,这时候会有一个4次挥手的过程

    ① 客户端向服务器发送一个断开连接的请求

    ② 服务器端收到请求,发送一个确认的信号

    ③ 服务器端向客户端发送断开连接的通知

    ④ 客户端收到通知,断开请求,反馈一个确认的信号,服务器收到信号后断开连接

好了,写完了。

另外补上一份大神的答案:

https://zhuanlan.zhihu.com/p/34453198

由于他说的东西我现在还不能完全理解,所以希望以后自己进一步提高自己以后,再来完善这篇blog。

猜你喜欢

转载自blog.csdn.net/holiday19950913/article/details/86218691