简体中文
  • 浏览器
  • URL
  • 过程
  • 域名服务
  • DNS
  • IP 地址

浏览器如何处理地址栏中的 URL 输入?

当我们在浏览器中打开特定的 URL 时,浏览器如何加载和显示内容?我们将按照事件发生的顺序展示浏览器依次做了什么。

Darcy Ye
Darcy Ye
Developer

除了使用自定义原生应用程序浏览特定网页外,大部分网页都是通过浏览器来浏览的。那么当我们在浏览器中打开特定的 URL 时,浏览器如何加载和显示内容?我们将按照事件发生的顺序展示浏览器依次做了什么。

用户在浏览器中输入 URL

在我们之前的博客文章中,我们介绍了 URL 的组成部分,包括被称为主机/域名的部分,例如 www.google.comblog.logto.io 等等。

使用主机/域名查询 IP 地址

浏览器无法直接理解主机/域名并找到相应的资源,而是需要知道具体的 IP 地址来定位网页所需资源的位置。

浏览器会通过域名系统 (DNS) 查找与主机/域名相对应的 IP 地址。

为了使查找 IP 地址的过程尽可能快,主机/域名与 IP 地址的对应关系通常会使用各种缓存,如浏览器缓存、操作系统缓存等。

当缓存查找未命中时,我们将通过常规的 DNS 查找过程来找到主机/域名的 IP 地址。这些步骤如下:

  1. 当用户在网页浏览器中输入 blog.logto.io 时,网页浏览器请求 DNS 服务获取 IP 地址,对应的查询请求由 DNS 解析器接收
  2. DNS 解析器查询 DNS 根服务器 (.)
  3. 根服务器返回与顶级域 (TLD) DNS 服务器(在此例中为 .io)对应的地址和相关信息
  4. DNS 解析器查询 .io 顶级域服务器
  5. .io 顶级域服务器返回 logto.io 的域名服务器地址
  6. DNS 解析器请求 logto.io 域名服务器
  7. logto.io 域名服务器返回 blog.logto.io 的地址
  8. DNS 解析器将 blog.logto.io 的 IP 地址转发回网页浏览器

然后网页浏览器可以向服务器请求相应的资源,并为用户渲染网站。

建立 TCP 连接

通过 DNS 服务获取到要浏览的域名对应的 IP 地址后,网页浏览器会与服务器建立 TCP 连接。

获取资源并渲染网页

建立 TCP 连接后,浏览器会向服务器发起网络请求,获取相应的资源,并根据获取的资源渲染网页内容供用户浏览。