面试题:从一个url地址到页面渲染完成 发生了什么css
1.DNS解析 将域名地址解析为IP地址
浏览器的DNS缓存
系统DNS缓存
路由器DNS缓存
网络运营商DNS缓存
递归搜索
2.TCP连接 TCP三次握手
第一次握手,由浏览器发起,告诉服务器我要发请求了
第二次握手 由服务器发起 告诉浏览器我准备接受了 你赶忙发送吧
第三次握手 由浏览器发起 告诉服务器我立刻就发了 准备接收吧html
3.发送请求
请求报文 http协议的通讯内容面试
4接受响应
响应报文浏览器
5渲染页面
碰见HTML标记 浏览器调用html解析器解析成Token并构建成dom树
碰见style/link标记 浏览器会调用css解析器处css标记并构建成cssom树
遇到script标记 调用js解析器 处理script代码(绑定事件 修改dom、cssom树)
将dom树和cssom树合并成一个渲染树
根据渲染树来计算布局 将各个节点颜色绘制到屏幕上(渲染)缓存
注意: 这五个步骤不必定按顺序执行 若是dom树 或者cssom树被修改了可能会执行屡次布局和渲染 每每实际页面中,这些步骤都会执行屡次的
6.断开链接 TCP四次挥手
第一次挥手 由浏览器发起的 发送给服务器 我东西发送完了(请求报文),你准备关闭吧
第二次挥手 由服务器发起的 告诉浏览器我东西接受完了(请求报文) 我准备关闭了 你也准备吧
第三次挥手 有服务器发起 告诉浏览器我东西发送完了(响应报文) 你准备关闭吧
第四次挥手 由浏览器发起 告诉服务器 我东西接受完了(响应报文) 准备关闭了 你也准备吧服务器