网站首页 > java教程 正文
从浏览器访问百度首页(https://www.baidu.com)的过程涉及 多层网络协议 的协作,涵盖 应用层、传输层、网络层、链路层和物理层。以下是关键协议及其作用的分步解析:
1.应用层协议
(1)DNS 协议(域名解析)
- 作用:将域名 www.baidu.com 解析为 IP 地址(如 180.101.49.12)。
- 协议:
- DNS over UDP:默认使用 UDP 端口 53(查询响应快,适合小数据包)。
- 若响应过大(如 DNSSEC),可能回退到 DNS over TCP。
- 现代浏览器可能支持 DNS over HTTPS (DoH) 或 DNS over TLS (DoT)(加密 DNS 查询)。
(2)HTTP/HTTPS 协议(网页传输)
- HTTP/1.1 或 HTTP/2:
- 早期使用 HTTP(明文传输,已淘汰),现在默认 HTTPS(加密)。
- HTTP/2 支持多路复用,提升加载效率。
- TLS/SSL 协议(加密层):
- 在 HTTPS 中,先通过 TLS 握手(如 TLS 1.2/1.3)建立安全连接。
- 涉及 证书验证(百度服务器的数字证书由 CA 颁发,如 DigiCert)。
2.传输层协议
(1)TCP 协议(可靠传输)
- 作用:建立端到端可靠连接,确保数据有序、无丢失。
- 关键过程:
- 三次握手:浏览器与百度服务器(如 180.101.49.12:443)建立 TCP 连接。
- TLS 握手:在 TCP 连接上协商加密参数(如密钥交换算法、对称加密算法)。
- 数据传输:HTTP 请求(如 GET /)和响应(HTML 页面)通过 TCP 传输。
- 四次挥手:页面加载完成后释放连接(HTTP/1.1 可能复用连接)。
(2)UDP 协议(可选)
- 若使用 QUIC 协议(HTTP/3 的基础),则基于 UDP 实现快速连接(减少握手延迟)。
3.网络层协议
(1)IP 协议(路由寻址)
- IPv4/IPv6:
根据网络环境选择 IP 版本(如 180.101.49.12 是 IPv4,百度也支持 IPv6)。 - 路由选择:
数据包通过路由器跳转,依赖 OSPF、BGP 等路由协议(运营商网络层)。
(2)ICMP 协议(辅助控制)
- 作用:
用于网络诊断(如 ping www.baidu.com 使用 ICMP Echo 请求/响应)。
4.链路层与物理层协议
(1)以太网/Wi-Fi 协议(局域网传输)
- MAC 地址:
数据包在本地网络通过 MAC 地址(如网关路由器)转发。 - ARP 协议:
将网关 IP 解析为 MAC 地址(若本地缓存不存在)。
(2)物理介质(信号传输)
- 有线:光纤/网线(使用 Ethernet 协议)。
- 无线:Wi-Fi(IEEE 802.11 a/b/g/n/ac/ax)。
完整流程示例
- 输入 URL:https://www.baidu.com → 浏览器解析域名。
- DNS 查询:通过 UDP 53 端口获取百度服务器的 IP。
- TCP 连接:与 180.101.49.12:443 三次握手。
- TLS 握手:协商加密算法,验证证书。
- HTTP 请求:发送 GET / 请求,接收 HTML 响应。
- 资源加载:解析 HTML,加载 CSS/JS(复用连接或新建 HTTP/2 流)。
- 渲染页面:浏览器渲染最终页面。
- 上一篇: 利用Jsoup技术从互联网上获取数据
- 下一篇: java实现爬虫抓取数据(java爬虫抓取淘宝数据)
猜你喜欢
- 2025-06-09 深圳尚学堂java知识大总结(二)(尚学堂java三百集)
- 2025-06-09 手把手详细教你优化CSS提高网站加载速度的21种方法汇总【实践】
- 2025-06-09 java实现爬虫抓取数据(java爬虫抓取淘宝数据)
- 2025-06-09 利用Jsoup技术从互联网上获取数据
- 2025-06-09 JAVA程序员自救之路——SpringAI文档解析tika
- 2025-06-09 基础 JavaScript 实例(javascript基础入门案例)
- 2025-06-09 HTML解析利器Jericho(html如何解析)
- 2025-06-09 初识JavaScript与CSS(css和js有何区别)
- 2025-06-09 一文弄懂Jasper引擎编译JSP文件的分析说明
- 2025-06-09 Jprofile解析dump文件使用详解(dump文件分析教程)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)