13. 完整实例:浏览器访问百度全过程

2026-07-16wei👁 18 阅读2 分钟阅读📝 750 字💬 0 评论
13. 完整实例:浏览器访问百度全过程

13. 完整实例:浏览器访问百度全过程

场景:客户端浏览器输入 http://www.baidu.com,完整走一遍各层协议通信流程

整体流程分步解析

1)应用层:DNS域名解析 + HTTP请求生成

浏览器无法直接通过域名通信,首先发起DNS解析:

  1. 查询本地缓存、hosts文件,无记录则向DNS服务器请求解析 www.baidu.com
  2. DNS服务器返回百度服务器公网IP(示例:220.181.27.48);
  3. 浏览器基于该IP,构造HTTP网页请求报文,准备向下交付传输层。

2)传输层:TCP封装、端口标识

HTTP基于TCP协议传输,传输层处理逻辑:

  1. 客户端随机分配临时源端口(如5000),目标端口固定80(HTTP默认端口);
  2. 对HTTP报文分段封装TCP头部(携带序列号、确认号、SYN/ACK等标志位);
  3. 与目标IP的80端口通过三次握手建立可靠TCP连接,封装完成后下发网络层。

3)网络层:IP寻址、路由转发

网络层只处理IP数据包,不关心上层TCP/HTTP内容:

  1. 给TCP分段添加IP头部,填入源IP、目的IP(百度服务器IP);
  2. 查询本机路由表,匹配下一跳网关;
  3. 数据包转发至网关/路由器,沿途各路由器不断查询路由表,跨网段逐级转发,直至抵达服务器所在网段。

4)数据链路层+物理层:ARP解析MAC、帧传输

数据包到达本地网关前,链路层完成二层封装:

  1. 需要目标设备MAC地址才能封装数据帧,发起ARP广播,根据IP查询对应MAC;
  2. 获取网关MAC后,封装以太网帧(源MAC、目标MAC、IP数据包);
  3. 物理层将二进制比特流通过网线/光纤发出,经过多层路由转发,最终送达百度服务器;
  4. 服务器端从底层到应用层逐层解封装,处理HTTP请求并返回网页数据,原路返回给客户端浏览器。
wei
技术博客作者
750 字 · 0 评论
2026-07-16

评论 (0)

暂无评论,来写第一条吧

登录后发表评论

分类

友链

关于本站

用 SpringBoot + Nuxt3 搭建的个人技术博客,记录编程之路的思考与收获。

© 2026 好啵博客 · Built with ❤️ & SpringBoot + Nuxt3