浏览器从URL输入到页面展示发生了什么?

1. URL解析

  URL(Uniform Resource Locator,统一资源定位符),它是 WWW 服务器用于指定网络资源位置的表示方法。

  语法格式:protocol://hostname[:port]/path/[parameters][?query]#fragment
  • protocol:指定使用的传输协议,比如 http,ftp,file。

  • hostname:存放资源的服务器的主机名或 IP 地址。

  • port:传输协议使用的端口号。

  • path:表示主机上的一个目录或文件地址。

  • parameters:可选,用于指定特殊参数。

  • query:可选,用于给动态网页传递参数。多个参数用 & 隔开,每个参数的名和值用 = 隔开。

  • fragment:字符串,用于指定网络资源中的片断。

2. DNS查询

  用户通过浏览器访问网页,DNS 服务器(域名解析系统)会根据用户输入的服务器域名查找对应的IP地址。

  域名解析服务器是基于 UDP 协议实现的一个应用程序,通过监听 53 端口来获取客户端的域名解析请求。

域名解析过程:

  • 浏览器 DNS 缓存。

  • 操作系统缓存,查找本机的 hosts。

  • 路由器 DNS 缓存。

  • 递归查询本地域名服务器。

  • 迭代查询根域名服务器。

3. 建立TCP连接

  浏览器通过 DNS 服务器获取到 Web 服务器的 IP 地址后,便向 Web 服务器发起 TCP 连接请求。通过 TCP 的三次握手建立好连接后,浏览器就可以将 HTTP 请求数据发送给 Web 服务器了。

4. HTTP请求/响应

  一个 HTTP 请求报文由请求行、请求头部、空行和请求数据4个部分组成。

  HTTP 响应报文由状态行、响应头部、空行以及响应数据组成。

5. 渲染页面

  浏览器拿到 HTTP 响应的 html 文档后,解析并渲染页面,最终呈现给用户。

相关推荐