浏览器从输入 url 到显示网页的全过程
- 浏览器从输入 url 到显示网页的全过程
- DNS(Domain Name System)解析
浏览器从输入 url 到显示网页的全过程
当你在浏览器中输入一个URL并按下Enter键,以下是浏览器为显示网页所执行的一系列步骤:
-
域名解析 (DNS解析):
- 浏览器首先检查本地缓存,看是否已经有这个域名的IP地址。
- 如果没有,它会发送请求给系统配置的DNS服务器。如果那个DNS服务器也没有缓存的结果,那么这个解析请求可能会被转发到其他DNS服务器。
- 一旦IP地址被找到,它将被返回到浏览器。
-
建立TCP连接:
- 浏览器与web服务器建立一个TCP连接,这通常是在HTTP默认的端口80或HTTPS的默认端口443上。
- 这包括一个三次握手。
-
发送HTTP请求:
- 浏览器发送一个HTTP请求到服务器。这个请求包括请求方法(如GET、POST等)、headers和可能的请求体。
-
处理HTTP响应:
- 服务器处理请求并返回一个HTTP响应。响应包含一个状态码(如200表示成功,404表示未找到),响应头部和响应体(通常是请求的HTML页面)。
-
HTTPS握手 (如果是https://请求):
- 在交换实际的HTTP数据之前,客户端和服务器会进行一个TLS/SSL握手,以确保之后的通信是加密和安全的。
-
渲染页面:
- 浏览器开始解析HTML,并构建DOM树。
- 并行地,浏览器会解析CSS,并构建CSSOM树。
- DOM树和CSSOM树结合后,形成一个渲染树。
- 之后,浏览器开始布局渲染树,并计算每个节点的几何位置。
- 最后,浏览器绘制渲染树到屏幕上。
-
执行JavaScript:
- 如果HTML中引用了JavaScript,浏览器会执行它。JavaScript可能会修改DOM和CSSOM,这可能会导致浏览器重新布局和重新绘制页面。
-
加载外部资源:
- 页面中可能包含其他资源(如图像、CSS、JavaScript文件)。浏览器会为这些资源发出额外的HTTP请求。注意,这些请求可能会因为浏览器的缓存机制或因为数据已被内联到HTML中而被省略。
以上是从输入URL到显示页面的简化过程。这个过程更加复杂,涉及到多种技术、优化和异常处理策略。
DNS(Domain Name System)解析
DNS(Domain Name System)解析是一种将人类可读的域名(例如 www.example.com)转换为与之相关的IP地址(例如 192.0.2.1)的过程。这个转换过程是互联网上的基本操作,因为计算机和其他设备使用IP地址来识别和访问彼此。
以下是DNS解析的基本概念和过程:
-
用户请求:当你在浏览器中输入一个网址或通过其他方式尝试访问一个域名时,你的计算机会开始一个DNS解析的请求。
-
查询本地缓存:首先,计算机会检查它自己的本地DNS缓存,看看它是否已经知道这个域名的IP地址。如果知道,它会直接使用那个地址。
-
递归查询:如果本地缓存中没有答案,计算机会向设置的DNS服务器(通常是由你的互联网服务提供商提供或是一个公共DNS服务器如Google的8.8.8.8)发送一个查询请求。这个DNS服务器会执行递归查询,意味着它会代替你的计算机去找出域名的IP地址。
-
迭代查询:如果DNS服务器也不知道答案,它会进行迭代查询,从根DNS服务器开始,然后是顶级域(TLD)服务器,接着是第二级域的名称服务器,直到找到具有所需IP地址的权威名称服务器为止。
-
返回IP地址:一旦找到IP地址,DNS服务器会将其返回给请求的计算机,并可能在其本地缓存中保存该信息,以便将来快速响应同样的请求。
-
连接到目标IP:现在,你的计算机知道了目标IP地址,它就可以通过IP地址开始与目标服务器建立连接,从而获取网站内容或进行其他相关操作。文章来源:https://uudwc.com/A/EyEpn
通过这个系统,人们可以通过易于记忆的域名(如openai.com)而不是难以记忆的IP地址(如 203.0.113.5)来访问互联网上的资源。文章来源地址https://uudwc.com/A/EyEpn