返回

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

前端

从浏览器输入 URL 到页面展示,大致可分为以下几个步骤:

  1. DNS 解析

    当我们在浏览器中输入一个网址时,首先需要进行DNS解析,将域名解析成对应的IP地址。DNS(Domain Name System)是一种将域名和IP地址相互映射的系统,它使我们能够使用易于记忆的域名来访问网站,而无需记住复杂的IP地址。

    DNS解析的过程是递归的,首先由本地DNS服务器查询,如果本地DNS服务器没有该域名的记录,则向根DNS服务器查询,根DNS服务器会将查询请求转发给相应的顶级域名服务器(如.com.cn等),顶级域名服务器再将请求转发给该域名的权威DNS服务器,权威DNS服务器最终将该域名的IP地址返回给本地DNS服务器,本地DNS服务器再将IP地址返回给浏览器。

  2. 建立TCP连接

    DNS解析完成后,浏览器会与目标服务器建立TCP(Transmission Control Protocol)连接。TCP是一种面向连接的、可靠的传输层协议,它为应用程序提供可靠的数据传输服务。

    TCP连接的建立需要经过三次握手,首先由客户端向服务器发送一个SYN(Synchronize)数据包,服务器收到SYN数据包后,向客户端发送一个SYN-ACK(Synchronize-Acknowledge)数据包,客户端收到SYN-ACK数据包后,再向服务器发送一个ACK(Acknowledge)数据包,至此TCP连接建立成功。

  3. 发送HTTP请求

    TCP连接建立后,浏览器会向服务器发送一个HTTP(Hypertext Transfer Protocol)请求。HTTP是一种用于在万维网上获取资源的协议,它定义了客户端和服务器之间通信的规则。

    HTTP请求包括请求行、请求头和请求体三个部分,请求行包含请求的方法、请求的资源路径和HTTP协议版本,请求头包含一些附加信息,如请求的语言、请求的编码方式等,请求体包含要发送给服务器的数据。

  4. 接收HTTP响应

    服务器收到HTTP请求后,会处理请求并向客户端发送一个HTTP响应。HTTP响应包括状态行、响应头和响应体三个部分,状态行包含HTTP协议版本、状态码和状态消息,响应头包含一些附加信息,如响应的语言、响应的编码方式等,响应体包含服务器返回的数据。

  5. 解析HTML

    浏览器收到HTTP响应后,会解析HTML(Hypertext Markup Language)代码,HTML是一种用于标记网页内容的语言,它定义了网页中各个元素的结构和样式。

    浏览器解析HTML代码时,会创建一个DOM(Document Object Model)树,DOM树是HTML代码的树状表示,它了网页中各个元素的父子关系。

  6. 加载CSS和JavaScript

    浏览器在解析HTML代码的同时,还会加载CSS(Cascading Style Sheets)和JavaScript代码。CSS用于定义网页的样式,JavaScript用于添加交互功能。

    浏览器加载CSS和JavaScript代码时,会将其缓存起来,这样下次访问同一个网页时,就不需要重新加载这些文件了。

  7. 渲染页面

    浏览器在加载完HTML、CSS和JavaScript代码后,会将它们结合起来渲染页面。渲染过程是将DOM树和CSS样式表转换为像素,并将其显示在屏幕上。

    浏览器的渲染引擎会根据DOM树和CSS样式表,计算出每个元素的位置、大小和颜色,然后将这些信息发送给GPU(Graphics Processing Unit),GPU会将这些信息转换为像素并显示在屏幕上。

以上就是从浏览器输入 URL 到页面展示的过程,这是一个非常复杂的过程,涉及到许多技术细节。希望通过本文,你能对这个过程有一个更深入的了解。