上网第四十一课:从输入网址到页面显示——一次完整的网络之旅

面试时被问"在浏览器输入网址回车后发生了什么",我答了 DNS、TCP、HTTP 各自的原理,面试官说:"都对,但我要听完整的旅程。"今天把这六周学的零件全部装回一台整车:跟着一个网址,走一遍从回车到显示的全程------这也是装维排查"网页打不开"的完整思路地图。

一、旅程总览:七站路,站站有人查

把 https://www.example.com 敲进浏览器回车后,数据要经过这七站:

站 干什么 用到的知识 卡壳表现
① URL 解析 拆出协议、域名、路径 第36课 直接报错打不开
② DNS 解析 域名 → IP 第34课 "找不到服务器/DNS 错误"
③ TCP 握手 建立连接 第38课 一直转圈连不上
④ TLS 握手 协商加密 第37课 "证书错误/不安全"
⑤ HTTP 请求 发"点菜单" 第36课 请求发出去没响应
⑥ 服务器处理 后端算数据、回响应 --- 500/502 错误
⑦ 浏览器渲染 拼 HTML、加载资源 --- 白屏/半截页面

下面逐站拆解,每站带"这一站坏了怎么查"。

二、逐站拆解

第①站:URL 解析(毫秒级,本机完成)

浏览器拆解出:协议 https、域名 www.example.com、路径 /。如果输入的域名不合法(比如打了中文句号),浏览器在这一步就报错------跟网络没关系,先检查输入。

第②站:DNS 解析(本地缓存 → 递归查询)

浏览器先查自己的缓存,没有就问操作系统,再没有就问配置的 DNS 服务器,递归服务器替你跑腿问根→.com→权威服务器,拿到 IP 后缓存下来。

卡壳排查:nslookup www.example.com------解析不出来,就查 DNS 配置、hosts 文件、或者 DNS 服务器本身。

第③站:TCP 三次握手(1 个 RTT)

拿到 IP 后,浏览器跟服务器的 443 端口握手:SYN → SYN-ACK → ACK,连接建立。这一步走的是运营商网络、经过各种路由器转发。

卡壳排查:ping IP 通不通、telnet IP 443 端口开不开------ping 通但 telnet 不通,多半是防火墙拦了端口。

第④站:TLS 握手(1-2 个 RTT)

连接建好,开始"对暗号":服务器出示证书,浏览器验签,双方交换会话密钥。之后所有数据都加密传输。

卡壳排查:证书报错先看系统时间,再看是不是公司防火墙做了"解密审计"(第37课的中间人场景)。

第⑤站:HTTP 请求(发出点菜单)

浏览器发 GET / HTTP/1.1,带上 Cookie、Accept 等请求头。这一单从加密的管道里传到服务器。

第⑥站:服务器处理(毫秒到秒级)

Web 服务器接到请求,转给应用处理(查数据库、跑逻辑),生成 HTML 后回 200 OK------这就是第36课说的"后厨出菜"。看到 500 系错误码,就是后厨自己的问题,跟网络无关。

第⑦站:浏览器渲染(边收边画)

拿到 HTML,浏览器一边解析一边再对页面里的每张图、每个脚本、每个样式发起新的请求(每个都可能再走一遍 DNS→连接→请求的迷你旅程),最终拼出你看到的页面。

卡壳排查:F12 打开 Network 面板,红色那行请求就是"断在半路的货"------看它卡在哪一步,就回对应站点查。

三、装维综合排查:一张地图走天下

实际排障不用挨个全查,按"现象定位站点":

  1. 报"DNS 错误" → 直接查第②站:nslookup、换 DNS 223.5.5.5 测试;
  2. 一直转圈打不开 → 查第③④站:ping 网关、ping 外网 IP、telnet 443 端口------IP 通域名不通是 DNS,IP 都不通是链路;
  3. 报"不安全/证书错误" → 查第④站:系统时间、防火墙审计;
  4. 能开但半截/白屏 → 查第⑦站:F12 看哪个资源 404 或超时;
  5. 只有某个网站慢 → 服务器或该站点链路问题,MTR 逐跳看;所有网站都慢 → 查自家:WiFi 信号、设备数、出口带宽。

小结

  • 一次网页打开 = URL 解析 → DNS → TCP 握手 → TLS 握手 → HTTP 请求 → 服务器处理 → 渲染,七站接力;
  • 每个站点都有对应的排查命令:nslookup、ping、telnet、F12------现象对号入座,不瞎忙;
  • 前六周的知识在这条链路里各就各位:链路是路,IP 是门牌,DNS 是电话簿,TCP/UDP 是运输队,HTTP/HTTPS 是规矩和保险。

思考题:你访问网站正常,但同事访问同一个网站提示"证书不安全"。网络链路肯定没问题(你俩在同一出口),那最可能是哪一站的什么差异?(提示:第④站验证书靠的是"本机内置的根证书+系统时间"------他的电脑时间错了,或者被装了奇怪的根证书,又或者他访问的是 http:// 被 HSTS 拦了。)

下期预告

本周把协议篇收官:IP、TCP、UDP、HTTP、HTTPS、QUIC、DNS 全部打通。明天照例复盘:第六周复盘:协议篇快问快答------把这周的概念串成串,检验一下是否真的"懂了"。

相关推荐
灯澜忆梦2 小时前
【minio】#5 | MinIO 分布式部署 + HTTPS 部署
分布式·网络协议·https·对象存储·minio
wangbing11252 小时前
开发指南148-WebSocket-后端
网络·websocket·网络协议
网络小江12 小时前
上网第三十九课:TCP 的可靠性——滑动窗口、重传与拥塞控制
网络协议
91刘仁德14 小时前
HTTP协议详解:从URL到HTTP服务器的完整实战
服务器·网络·笔记·网络协议·http
可乐鸡翅yeah_16 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
pt104318 小时前
CML网络仿真入门-2:使用CML模拟网络实验环境
运维·网络协议
熊文豪1 天前
KingbaseES 数据加密全解:从 SSL 到全密态
网络·网络协议·ssl
网络小江1 天前
上网第三十八课:TCP 三次握手与四次挥手——连接到底是怎么“谈“成的
网络协议