从 URL 输入到页面展现到底发生什么?

0 问题

打开浏览器后,输入一段网址,例如:baidu.com后会发生什么呢?

1 总体流程

  1. DNS 解析:将域名解析成 IP 地址
  2. TCP 连接:TCP 三次握手
  3. 发送 HTTP 请求
  4. 服务器处理请求并返回 HTTP 报文
  5. 浏览器解析渲染页面
  6. 断开连接:TCP 四次挥手

2 DNS域名解析

2.1 概念

DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。DNS 是一个网络服务器,我们的域名解析简单来说就是在 DNS 上记录一条信息记录。例如 baidu.com 220.114.23.56(服务器外网IP地址)80(服务器端口号)

2.2 浏览器如何通过域名去查询 URL 对应的 IP 呢?

  1. 浏览器缓存
    浏览器会按照一定的频率缓存 DNS 记录。
  2. 操作系统缓存
    如果浏览器缓存中找不到需要的 DNS 记录,那就去操作系统中找。
  3. 路由缓存
    路由器也有 DNS 缓存。
  4. ISP 的 DNS 服务器
    ISP 是互联网服务提供商(Internet Service Provider)的简称,ISP 有专门的 DNS 服务器应对 DNS 查询请求。
  5. 根服务器
    ISP 的 DNS 服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS 服务器先问根域名服务器.com 域名服务器的 IP 地址,然后再问.baidu 域名服务器,依次类推)

2.3 总结

浏览器通过向 DNS 服务器发送域名,DNS 服务器查询到与域名相对应的 IP 地址,然后返回给浏览器,浏览器再将 IP 地址打在协议上,同时请求参数也会在协议搭载,然后一并发送给对应的服务器。

3 TCP三次握手、四次挥手

Wireshark抓包分析TCP“三次握手,四次挥手”

4 HTTP请求、响应

HTTP总结

5 参考

经典面试题:从 URL 输入到页面展现到底发生什么?

posted @ 2022-07-16 10:20  云梦士  阅读(45)  评论(0编辑  收藏  举报