从 URL 输入到页面展现到底发生什么?
0 问题
打开浏览器后,输入一段网址,例如:baidu.com后会发生什么呢?
1 总体流程
- DNS 解析:将域名解析成 IP 地址
- TCP 连接:TCP 三次握手
- 发送 HTTP 请求
- 服务器处理请求并返回 HTTP 报文
- 浏览器解析渲染页面
- 断开连接:TCP 四次挥手
2 DNS域名解析
2.1 概念
DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。DNS 是一个网络服务器,我们的域名解析简单来说就是在 DNS 上记录一条信息记录。例如 baidu.com 220.114.23.56(服务器外网IP地址)80(服务器端口号)
2.2 浏览器如何通过域名去查询 URL 对应的 IP 呢?
- 浏览器缓存
浏览器会按照一定的频率缓存 DNS 记录。 - 操作系统缓存
如果浏览器缓存中找不到需要的 DNS 记录,那就去操作系统中找。 - 路由缓存
路由器也有 DNS 缓存。 - ISP 的 DNS 服务器
ISP 是互联网服务提供商(Internet Service Provider)的简称,ISP 有专门的 DNS 服务器应对 DNS 查询请求。 - 根服务器
ISP 的 DNS 服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS 服务器先问根域名服务器.com 域名服务器的 IP 地址,然后再问.baidu 域名服务器,依次类推)
2.3 总结
浏览器通过向 DNS 服务器发送域名,DNS 服务器查询到与域名相对应的 IP 地址,然后返回给浏览器,浏览器再将 IP 地址打在协议上,同时请求参数也会在协议搭载,然后一并发送给对应的服务器。