浏览器从输入URL到页面加载显示完成经过了什么
这是一个经典的面试问题,往往面试官没事做的时候都喜欢问这个问题。
面试官可以通过这个问题了解你对加载页面流程的熟悉程度,然后在继续扩展问其他问题(页面优化、算法等)
主要流程
1、浏览器的地址栏输入URL并按下回车。
2、浏览器查找当前URL的DNS缓存记录。
3、根据IP建立TCP连接(三次握手)。
4、HTTP发起请求。
5、服务器处理请求,浏览器接收HTTP响应。
6、渲染页面,构建DOM树、CSSOM树、render数。
7、Ajax查询
8、关闭TCP连接(四次挥手)。
1、输入URL
浏览器会启动一个线程处理这个请求,判断url是否为http协议或者说自定义URL协议。
2、DNS域名解析
根据URl依次查看浏览器缓存、系统缓存、路由缓存,如果没有缓存将进行DNS域名解析流程。
一般的,我们输入的都是域名。域名是IP地址的映射,域名解析的过程就是将域名还原为ip的过程。