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

面试时被问"在浏览器输入网址回车后发生了什么",我答了 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 全部打通。明天照例复盘:第六周复盘:协议篇快问快答------把这周的概念串成串,检验一下是否真的"懂了"。

相关推荐
FPGA小迷弟1 天前
FPGA开发Vivado Block Design/Vitis/SDK/xlinx/开发教程,保姆级别,一看就会!
网络协议·tcp/ip·fpga开发·verilog·fpga
FPGA小迷弟1 天前
基于FPGA实现智能网卡的概念,什么是智能网卡
网络协议·tcp/ip·fpga开发·verilog·fpga
jaysee-sjc1 天前
【苍穹外卖】Day10:定时任务与 WebSocket 实时提醒实战
java·开发语言·javascript·数据库·vue.js·websocket·网络协议
幻智星科技2 天前
我砍掉了FPGA里的ARM核项目反而提前交付了
arm开发·网络协议·fpga开发·硬件架构
cyf312 天前
半小时玩转RDMA:从零跑通高速网络通信
网络协议·rdma·高速通信·rocev2·wireshark抓包·ai 智算网络·入门实战
砺星Leetx2 天前
工业总线选型与对接实战:PROFINET、EtherCAT、EtherNet/IP、PROFIBUS、Modbus-TCP 与 CC-Link
网络·网络协议·tcp/ip·控制器·国产拧紧系统
流浪0012 天前
计算机网络篇8:传输层——序列化与反序列化,TCP 面向字节流的报文边界由应用层自己切
网络协议·tcp/ip·计算机网络·1024程序员节·序列化反序列化·面向字节流·面向数据包
幻智星科技2 天前
多通道数据采集中collect_end信号的妙用
网络协议·架构·udp·硬件架构
lazy H2 天前
【计算机网络】第 5 篇:TCP 和 UDP 有什么区别?从 Java 后端场景理解两种传输协议
经验分享·后端·网络协议·tcp/ip·计算机网络·1024程序员节
byte轻骑兵3 天前
【LMP】规范精讲[8]: 主从易位——角色切换的时序反转与微微网重构
网络协议·安全·蓝牙协议·lmp·链接管理