简体中文
浏览器如何处理地址栏中的 URL 输入?
当我们在浏览器中打开特定的 URL 时,浏览器如何加载和显示内容?我们将按照事件发生的顺序展示浏览器依次做了什么。
除了使用自定义原生应用程序浏览特定网页外,大部分网页都是通过浏览器来浏览的。那么当我们在浏览器中打开特定的 URL 时,浏览器如何加载和显示内容?我们将按照事件发生的顺序展示浏览器依次做了什么。
用户在浏览器中输入 URL
在我们之前的博客文章中,我们介绍了 URL 的组成部分,包括被称为主机/域名的部分,例如 www.google.com
、blog.logto.io
等等。
使用主机/域名查询 IP 地址
浏览器无法直接理解主机/域名并找到相应的资源,而是需要知道具体的 IP 地址来定位网页所需资源的位置。
浏览器会通过域名系统 (DNS) 查找与主机/域名相对应的 IP 地址。
为了使查找 IP 地址的过程尽可能快,主机/域名与 IP 地址的对应关系通常会使用各种缓存,如浏览器缓存、操作系统缓存等。
当缓存查找未命中时,我们将通过常规的 DNS 查找过程来找到主机/域名的 IP 地址。这些步骤如下:
- 当用户在网页浏览器中输入
blog.logto.io
时,网页浏览器请求 DNS 服务获取 IP 地址,对应的查询请求由 DNS 解析器接收 - DNS 解析器查询 DNS 根服务器 (.)
- 根服务器返回与顶级域 (TLD) DNS 服务器(在此例中为
.io
)对应的地址和相关信息 - DNS 解析器查询
.io
顶级域服务器 .io
顶级域服务器返回logto.io
的域名服务器地址- DNS 解析器请求
logto.io
域名服务器 logto.io
域名服务器返回blog.logto.io
的地址- DNS 解析器将
blog.logto.io
的 IP 地址转发回网页浏览器
然后网页浏览器可以向服务器请求相应的资源,并为用户渲染网站。
建立 TCP 连接
通过 DNS 服务获取到要浏览的域名对应的 IP 地址后,网页浏览器会与服务器建立 TCP 连接。
获取资源并渲染网页
建立 TCP 连接后,浏览器会向服务器发起网络请求,获取相应的资源,并根据获取的资源渲染网页内容供用户浏览。