持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第25天,点击查看活动详情
题外话
北京最近真的是太热了,感觉自己要化了!!!!
正文
1. 在浏览器输入url到页面出现发生了什么
这道题目,想说多久能说多久,你跟面试官能说了三天三夜都是有可能的
简洁版
- 输入url网址了,就接着往下走
- DNS域名解析,DNS服务器将域名解析为ip地址
- 通过TCP三次握手建立连接通道
- 浏览器向服务器发送HTTP请求,请求数据包
- 服务器接收浏览器响应,返回给浏览器数据。
- 浏览器接收HTTP响应
- 浏览器开始构建页面,解析HTML文档,构建DOM树,构建CSSOM树,执行JS脚本。
- 渲染页面。
详细版
1. 输入url网址
2. DNS解析,将域名转换为IP地址
- 在输入url网址之后,首先会在本机上进行解析,又分为三个步骤:
- 首先在浏览器自身的DNS缓存中查找,如果有对应的缓存记录,就将对应的记录的IP地址返回,如果没有就进行下一步
- 接着浏览器在操作系统系统中查找是否有对应的解析缓存记录,如果有对应的记录就讲缓存的IP地址返回,如果没有,就接着进行下一步
- 上面两步都没有找到对应的缓存IP地址,就在本地的hosts文件里面查找,如果找到就返回对应的IP地址进行返回,如果没有就接着进行下一步
- 如果在本机上没有查找对对应的缓存,我们就将信息发送给本地DNS服务器,本地DNS服务器又分为两种:缓存服务器和递归服务器
缓存服务器分为公共DNS服务器和运营商提供的运营商DNS服务器
公共DNS服务器指的是像114,Google这种 运营上服务器指的是附近运营商提供的服务器,这种服务器离用户比较近,性能比较高,大约80%的DNS解析都终止在这一步。
如果缓存服务器依然没有找到,就将信息传递给递归服务器
递归服务器分为三种:根域名服务器、顶级域名服务器、权威服务器
- 根域名服务器接到本地DNS服务返回的解析结果,把负责这个后缀的顶级域名服务器IP地址返回给本地DNS服务器。
- 本地DNS服务器根据返回的IP地址找到对应的顶级域名服务器,顶级域名服务器将负责该域名的权威服务器IP返回给本地DNS服务器。
- 本地服务器接收返回的IP地址,找到权威服务器,权威服务器把对应的主机IP返回给本地DNS服务器。 至此完成了DNS解析全过程。
结束
关于url解析过程如果详细说真的能说很久,今天就单纯的把DNS的解析过程说明白了,明天我们说说TCP三次握手。