浏览器URL从输入到页面绘制完成过程

218 阅读2分钟

今天我们来聊一聊面试中经常被问到,但是没有标准答案的问题。我们经常会被问到类似的问题,浏览器输入URL以后发生了什么/浏浏览器地址栏输入url到显示页面的步骤/,浏览器输入URL与Web服务器交互过程/浏览器中输入URL并回车后都发生了什么等等等,类似的问题,其实就是要考察前端对浏览器的解析,dns缓存,dom/css tree绘制,以及重排和重绘这些问题。

1、用户在浏览器的地址栏输入访问的URL地址,浏览器会先根据这个URL查看浏览器缓存-系统缓存-路由器缓存,若缓存中有,直接跳到第6步操作,若没有,则按照下面的步骤进行操作。

2、浏览器根据输入的URL地址解析出主机名。

3、浏览器将主机名转换成服务器ip地址。浏览器先查找本地DNS缓存列表,看缓存里面是否存在这个ip,如果有则进入第4步,如果缓存中不存在这个ip地址,就再向浏览器默认的DNS服务器发送查询请求,同时缓存当前这个ip到DNS缓存列表中。更详细步骤参考DNS查找域名的过程。

4、拿到ip地址后,浏览器再从URL中解析出端口号。

5、拿到ip和端口后,浏览器会建立一条与目标Web服务器的TCP连接,也就是传说中的三次握手。传送门:完整的tcp链接。

6、浏览器向服务器发送一条HTTP请求报文。

7、服务器向浏览器返回一条HTTP响应报文。

8、关闭连接 浏览器解析文档。

9、如果文档中有资源则重复6、7、8动作,直至资源全部加载完毕。