网络相关 - 浏览器输 URL后发生的完整过程

文章目录

    • 一、完整流程概览图
    • 二、详细步骤解析
      • [1. URL 解析与预处理](#1. URL 解析与预处理)
      • [2. DNS 域名解析](#2. DNS 域名解析)
      • [3. 建立 TCP 连接(三次握手)](#3. 建立 TCP 连接(三次握手))
      • [4. TLS 握手(HTTPS 专属)](#4. TLS 握手(HTTPS 专属))
      • [5. 发送 HTTP 请求](#5. 发送 HTTP 请求)
      • [6. 服务器处理请求](#6. 服务器处理请求)
      • [7. 接收 HTTP 响应](#7. 接收 HTTP 响应)
      • [8. 浏览器解析与渲染](#8. 浏览器解析与渲染)
      • [9. 加载静态资源](#9. 加载静态资源)
      • [10. JavaScript 执行](#10. JavaScript 执行)
      • [11. 页面交互就绪](#11. 页面交互就绪)
      • [12. 后续优化行为](#12. 后续优化行为)

当在浏览器地址栏输入 URL(如 https://www.example.com)并按下回车时,背后发生了以下 12 个关键步骤,如下:

一、完整流程概览图

二、详细步骤解析

1. URL 解析与预处理

  • 浏览器解析 URL 结构

    复制代码
    https://www.example.com:443/path?query=1#section
    └─协议 └──主机名 └─端口 └─路径 └──查询参数 └─锚点
  • 自动补全
    若输入example.com,浏览器自动补全为https://www.example.com(根据历史记录和 HSTS 列表)

2. DNS 域名解析

浏览器通过 DNS 查询 将域名转换为 IP 地址,查询顺序如下:

  • 关键点
    • DNS 查询使用 UDP 协议(端口 53)
    • 结果缓存 TTL 由 DNS 服务器设置

3. 建立 TCP 连接(三次握手)

  • 目的:确保双方收发能力正常
  • 耗时:通常 1~3 个 RTT(往返时间)

4. TLS 握手(HTTPS 专属)

  • 关键步骤
    • 证书链验证(CA 机构签名)
    • 密钥交换(ECDHE/RSA)
    • 协商对称加密算法(如 AES_256_GCM)

5. 发送 HTTP 请求

浏览器发送的请求头示例:

http 复制代码
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html,application/xhtml+xml
Cookie: session_id=abc123

6. 服务器处理请求

服务器端典型处理流程:

复制代码
Nginx → 反向代理 → 应用服务器(如Node.js) → 数据库查询 → 生成HTML

7. 接收 HTTP 响应

服务器返回的响应头示例:

http 复制代码
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: max-age=3600
Set-Cookie: session_id=def456

8. 浏览器解析与渲染

关键子流程

优化策略

  • 预加载扫描器 :提前发现<img>/<script>资源
  • 延迟加载 :对非首屏图片使用loading="lazy"

9. 加载静态资源

  • 并行下载:现代浏览器支持 6~8 个 TCP 连接并行下载
  • 优先级控制
    • CSS/阻塞 JS > 图片 > 异步脚本

10. JavaScript 执行

  • 解析阶段:词法分析 → 语法分析 → 字节码生成
  • 执行阶段
    • 同步任务直接执行
    • 异步任务(如setTimeout)进入事件循环队列

11. 页面交互就绪

  • 触发事件
    DOMContentLoaded(DOM 解析完成) → load(所有资源加载完成)

12. 后续优化行为

  • 预渲染:Chrome 在后台预加载用户可能访问的下一个页面
  • Service Worker 缓存:支持离线访问(PWA 技术)

👉点击进入 我的网站

相关推荐
思茂信息6 分钟前
CST 辐射边界反射过高优化方法
网络·emc·emi·cst·仿真软件·电磁仿真
蒜苔肉丝10 分钟前
Vue3 动态表单:模块复用 + 动态增删行 + 数据回显
前端·javascript·vue.js
奥莱维21 分钟前
经济型酒店智能客控轻量化方案
大数据·网络·人工智能
Cxiaomu25 分钟前
从 TRTC Demo 到独立音视频服务:React + TRTC Web SDK 服务化实践
前端·react.js·音视频
索西引擎33 分钟前
【React】Redux 中间件机制:副作用处理与数据流增强的形式化分析
前端·react.js·中间件
电商API_180079052471 小时前
导购比价小程序场景|京东联盟商品详情对接方案|多规格图文拉取技术实操
网络·小程序·网络爬虫
拾光Ծ1 小时前
【Linux网络】网络通信实战:UDP & TCP Socket编程实现Echo Server
linux·网络·网络协议·tcp/ip·udp·线程池
寒草1 小时前
「寒草呈献」工作六年,是否仍有创造未来的勇气 ✨
前端·后端
HackTwoHub1 小时前
解锁 AI 红队全新玩法!Claude-Red 攻防 Skill 库,内置 SQLi、XXE、文件上传等 Web 专项 Skill,一键导入快速落地渗透实战
前端·人工智能·web安全·网络安全·自动化·系统安全
石小石Orz1 小时前
如何设计一个优秀的 Skills
前端·人工智能