浏览器输入url后发生了什么

Gabrielle Lv5

1. URL解析

用户输入的URL(例如 https://www.example.com/index.html)首先被浏览器解析,该过程包括:

  • 提取协议(如HTTP或HTTPS)
  • 主机名(如www.example.com)
  • 端口
  • 路径(如/index.html)
  • 查询参数
  • 锚点

详见:

2. DNS 查询

浏览器需要将域名转换为IP地址,以便进行网络通信。
此时,浏览器会查找本地DNS缓存,如果没有找到,就会向系统的DNS服务器发送请求。DNS服务器将返回对应的IP地址。

详见:

3. TCP连接

一旦获得了IP地址,浏览器通过TCP(传输控制协议)建立与目标服务器的连接。
对于HTTPS请求,还需要进行SSL/TLS握手,以确保安全性。这一过程包括:

  • 客户端向服务器发送连接请求
  • 服务器确认并建立连接
  • 进行SSL/TLS证书验证以及协商加密算法

4. 发送HTTP请求

连接建立后,浏览器构建一个HTTP请求并发送到服务器。这个请求包含:

  • 请求行(例如 GET /index.html HTTP/1.1)
  • 请求头(例如用户代理、接受类型等信息)
  • 请求体(对于POST请求,可能包含数据)

5. 服务器处理请求

服务器接收到请求后,会根据请求的内容进行处理。它可能会查找文件、访问数据库或者执行其他逻辑,最终生成一个HTTP响应。

6. 接收HTTP响应

服务器发送回HTTP响应,包含状态码(如200表示成功,404表示未找到),响应头(如内容类型、内容长度等)和响应体(实际请求资源的内容,如HTML文档)。

7. 渲染页面

浏览器接收响应后,进行以下步骤:

  • 解析HTML文档,构建DOM树
  • 如果遇到CSS文件,发起请求以获取样式,并构建CSSOM树
  • 合并DOM和CSSOM,生成渲染树
  • 根据渲染树计算布局,决定每个元素的位置和大小
  • 绘制页面,将内容绘制到屏幕上

8. 处理JavaScript

如果HTML中包含JavaScript代码,浏览器会逐步执行这些脚本。
JavaScript可以操作DOM,改变页面内容,进行AJAX请求等。

9. 其它资源加载

如果页面中包含其他资源(如图片、音频、视频),浏览器会并行请求这些资源,直至全部加载完成。

案例说明

假设用户在浏览器中输入https://www.example.com/index.html,整个过程如下:

  1. 浏览器解析出协议为HTTPS,域名为www.example.com。
  2. 发送DNS请求,获得IP地址93.184.216.34。
  3. 与该IP地址建立TCP连接,并进行TLS握手。
  4. 发送GET请求,请求/index.html资源。
  5. 服务器处理请求,返回200状态及index.html内容。
  6. 浏览器解析HTML,构建DOM树,并抓取相关的CSS和JavaScript文件。
  7. 最终呈现完整的网页给用户。
  • Title: 浏览器输入url后发生了什么
  • Author: Gabrielle
  • Created at : 2024-10-10 09:22:10
  • Updated at : 2026-02-08 08:00:26
  • Link: https://zoella-w.github.io/2024/10/10/21-浏览器输入url后发生了什么/
  • License: This work is licensed under CC BY-NC-SA 4.0.