
一次 HTTPS 访问至少跨越 DNS、TCP、TLS、HTTP、反向代理与应用六个环节。慢、断或证书错误,必须先定位发生在哪一层。
适用对象:网络学习者、Web 开发与运维人员 阅读时间:约 12 分钟
一、先建立分层视角
在浏览器输入域名后,系统不会直接“打开网页”。它先需要找到服务器地址,再建立可靠连接,协商加密参数,发送 HTTP 请求,最后由 Nginx、应用和数据库共同生成响应。把问题映射到具体层级,是排障的第一步。
二、DNS:域名如何变成地址
浏览器、操作系统、递归解析器会依次查询缓存。缓存未命中时,递归解析器沿根、顶级域和权威服务器找到记录。TTL 决定缓存可保留多久,因此刚修改的记录不会在全球同时生效。
nslookup www.example.test
curl -v --resolve www.example.test:443:127.0.0.1 https://www.example.test/
第二条命令适合在自有实验环境跳过公网 DNS,对域名、端口和指定地址进行可控验证。
三、TCP:先建立可靠连接
客户端发送 SYN,服务器返回 SYN-ACK,客户端再发送 ACK。序列号、确认号、重传和拥塞控制共同保证可靠传输。若握手失败,应先检查监听地址、安全组、防火墙、路由和端口映射,而不是立即怀疑应用。
四、TLS 1.3:身份与会话密钥
ClientHello 携带支持版本、密码套件和 SNI;服务器返回证书和密钥协商参数。浏览器验证证书链、域名、有效期和信任根后,双方得到会话密钥。此后 HTTP 内容被加密,但源/目的地址、连接时间与部分握手元数据仍可观察。
HTTPS 证明连接经过加密且证书与域名关系可验证,并不证明服务器本身没有漏洞。
五、HTTP 如何穿过 Nginx
请求到达 443 后,Nginx 终止 TLS,按 Host、路径和缓存规则处理。动态请求转发给 WordPress/PHP,应用可能继续访问 MySQL。响应沿原路径返回,浏览器再解析 HTML、CSS、JavaScript 和图片。
六、安全的本地观察
只抓取本人电脑与自有服务器之间的流量,不进行局域网嗅探、ARP 欺骗或第三方流量解密。可使用浏览器网络面板、curl -v、ss -lntp 和 Wireshark 观察自己的连接。
七、从现象定位慢点
- DNS 时间高:检查解析器、TTL 和权威响应。
- 连接时间高:检查路由、丢包、安全组和监听地址。
- TLS 时间高:检查证书链、OCSP、CPU 和重复握手。
- TTFB 高:检查 Nginx 缓存、PHP、数据库和外部依赖。
- 下载完成后仍慢:检查图片、字体、阻塞脚本和布局计算。
官方来源
最后核验:2026-08-12。