输入网址回车后发生了什么:从 DNS 到渲染

副标题 / 摘要 从输入 URL 到页面渲染,涉及 DNS、TCP/TLS、HTTP、渲染管线等多个步骤。本文给出清晰流程与排查思路。 目标读者 想理解浏览器工作流程的开发者 需要排查网络与渲染问题的工程师 前后端协作人员 背景 / 动机 “打开网页很慢”可能源自 DNS、连接、服务器、渲染等任何环节。 理解全链路流程,才能有效定位性能瓶颈。 核心概念 DNS 解析:域名 -> IP TCP/TLS 握手:建立安全连接 HTTP 请求/响应:获取资源 渲染管线:解析 HTML/CSS/JS -> 绘制 实践指南 / 步骤 DNS 解析:缓存/递归解析 TCP/TLS 握手:建立连接 HTTP 请求:请求 HTML 与静态资源 渲染流程:构建 DOM/CSSOM -> Layout -> Paint JS 执行:可能阻塞渲染 可运行示例 用 curl 查看网络层信息: curl -v https://example.com 解释与原理 浏览器加载过程的瓶颈可能发生在“连接层”(DNS/TCP/TLS),也可能在“渲染层”(JS 阻塞、DOM 过大)。 分层分析是定位问题的关键。 常见问题与注意事项 HTTPS 比 HTTP 慢吗? 会多一次 TLS 握手,但可通过复用与缓存降低。 为什么首屏慢? 可能是渲染阻塞或资源过大。 ...

2026年1月24日 · 1 分钟 · map[name:Jeanphilo]

TCP 与 HTTP 的区别:分层、语义与选型

副标题 / 摘要 TCP 是传输层协议,HTTP 是应用层协议。二者的职责与语义完全不同,但经常被混淆。本文用工程视角梳理差异与选型。 目标读者 需要排查网络问题的后端工程师 想理解协议分层的开发者 Web 服务与客户端开发人员 背景 / 动机 很多线上问题都源于“层次混淆”:把 HTTP 的问题当 TCP 处理,或把 TCP 的问题当 HTTP 处理。 理解分层,是定位问题与做技术选型的基础。 核心概念 TCP:可靠、面向连接的字节流传输 HTTP:在传输层之上定义请求/响应语义 分层模型:传输层解决“怎么送到”,应用层解决“送什么” 实践指南 / 步骤 先看连接层:是否能建立 TCP 连接(握手、丢包、重传) 再看应用层:请求是否符合 HTTP 协议(方法、头、状态码) 分层排查:TCP 通了但 HTTP 失败,多半是应用层问题 选型时分清职责:HTTP 可以跑在 TCP 或 QUIC 上 常用诊断命令: # 看 TCP 连接建立 nc -vz host 80 # 看 HTTP 层返回 curl -v http://host/ 可运行示例 先在本机启动一个 HTTP 服务: python3 -m http.server 8000 再用 socket 直接发 HTTP 请求: ...

2026年1月24日 · 1 分钟 · map[name:Jeanphilo]