输入URL并回车后都发生了什么?

1.解析URL
2. DNS解析(域名解析)
1. 查询浏览器缓存(浏览器会缓存之前拿到的DNS 2-30分钟时间)
2. 如果没有找到,就检查系统缓存,检查hosts文件,这个文件保存了一些以前访问过的网站的域名和IP的数据。它就像是一个本地的数据库。如果找到就可以直接获取目标主机的IP地址了。没有找到的话,
3. 如果没有,检查路由器缓存,路由器有自己的DNS缓存,可能就包括了这在查询的内容;
4. 查询ISP DNS 缓存:ISP服务商(电信)DNS缓存(本地服务器缓存)那里可能有相关的内容,如果还不行的话
5. 需要递归查询:从根域名服务器到顶级域名服务器再到极限域名服务器依次搜索对应目标域名的IP。
获取到域名对应的IP了。接下来就是向该IP地址定位的HTTP服务器发起TCP连接
3. 浏览器与网站建立TCP连接(三次握手)
第一次握手:客户端向服务器端发送请求(SYN=1) 等待服务器确认;
第二次握手:服务器收到请求并确认,回复一个指令(SYN=1,ACK=1);
第三次握手:客户端收到服务器的回复指令并返回确认(ACK=1);
4. 请求和传输数据
可以将服务器上的目标文件传输到浏览器进行渲染
5. 浏览器渲染页面
1. 浏览器会解析html源码,然后创建一个 DOM树。
在DOM树中,每一个HTML标签都有一个对应的节点,并且每一个文本也都会有一个对应的文本节点。
2. 浏览器解析CSS代码,计算出最终的样式数据,形成css对象模型CSSOM。
浏览器默认设置——用户设置——外链样式——内联样式——HTML中的style样式顺序进行渲染
3. 利用DOM和CSSOM构建一个渲染树(rendering tree)
DOM树完全和html标签一一对应,但是渲染树会忽略掉不需要渲染的元素,比如head、display:none的元素等
4. 浏览器就根据渲染树直接把页面绘制到屏幕上

你可能感兴趣的:(输入URL并回车后都发生了什么?)