【网络协议】【OSI】一次HTTP请求OSI工作过程详细解析

目录

[1. 一次HTTP请求OSI工作过程](#1. 一次HTTP请求OSI工作过程)

[1.1 应用层(第7层)](#1.1 应用层(第7层))

[1.2 表示层(第6层)](#1.2 表示层(第6层))

[1.3 会话层(第5层)](#1.3 会话层(第5层))

[1.4 传输层(第4层)](#1.4 传输层(第4层))

[1.5 网络层(第3层)](#1.5 网络层(第3层))

[1.6 数据链路层(第2层)](#1.6 数据链路层(第2层))

[1.7 物理层(第1层)](#1.7 物理层(第1层))

[1.8 接收端处理流程](#1.8 接收端处理流程)


1. 一次HTTP请求OSI工作过程

我们可以将HTTP请求分解并应用到OSI模型中,以更好地理解请求在每一层的表示方式。为了简化说明,我将省略如头部信息和校验和等细节,以便我们可以专注于核心元素。

1.1 应用层(第7层)

应用层负责为用户提供网络服务。HTTP协议工作在这一层,通过HTTP协议,客户端(通常是浏览器)向服务器发送请求以获取网页或其他资源。

一个典型的HTTP GET请求可能看起来如下

html 复制代码
GET /index.html HTTP/1.1
Host: www.example.com

这是用户请求某个网页的直接表达。在这一层,用户和应用程序直接交互。

1.2 表示层(第6层)

表示层负责数据的格式化、加密解密和数据压缩。对于HTTP请求,这可能涉及将数据编码为某种字符集(如UTF-8)或者对数据进行SSL/TLS加密以确保传输的安全性。

例如,如果使用HTTPS(HTTP over SSL/TLS),请求可能会被加密,从而保护数据在传输过程中不被窃听或篡改。

1.3 会话层(第5层)

会话层负责建立、管理和终止会话。它确保数据交换的顺序和同步,并可以在通信过程中进行检查点和恢复操作。

在HTTP请求的上下文中,会话层可能管理会话状态,比如通过Cookies来跟踪用户会话:

html 复制代码
Cookie: sessionId=abc123

这允许服务器识别并维持与特定客户端的会话。

1.4 传输层(第4层)

传输层负责提供可靠的端到端数据传输服务。对于HTTP请求,通常使用TCP协议。TCP协议将数据分割成多个段(segments),并通过序列号和确认机制确保数据完整、按序到达。

HTTP请求在这一层被划分成TCP段,每个段包含一个序列号:

html 复制代码
Segment 1: Sequence Number 1, Data: "GET /index.html HT"
Segment 2: Sequence Number 2, Data: "TP/1.1 Host: www.exa"
Segment 3: Sequence Number 3, Data: "mple.com"

1.5 网络层(第3层)

网络层负责在不同的网络之间选择路径,并进行数据包的路由。IP协议工作在这一层,它将传输层的数据段封装成IP包(packets),并通过源IP地址和目的IP地址进行路由。

每个TCP段被封装成一个IP包,并添加IP地址信息:

html 复制代码
Packet 1: Source IP: 192.168.1.2, Destination IP: 93.184.216.34, Data: "Segment 1"
Packet 2: Source IP: 192.168.1.2, Destination IP: 93.184.216.34, Data: "Segment 2"
Packet 3: Source IP: 192.168.1.2, Destination IP: 93.184.216.34, Data: "Segment 3"

1.6 数据链路层(第2层)

数据链路层负责将数据帧传输到物理网络。它通过MAC地址识别网络设备,并使用如以太网协议来传输帧(frames)。

每个IP包被封装成数据帧,并附加源和目的MAC地址:

html 复制代码
Frame 1: Source MAC: 00:14:22:01:23:45, Destination MAC: 00:16:17:21:1A:2B, Data: "Packet 1"
Frame 2: Source MAC: 00:14:22:01:23:45, Destination MAC: 00:16:17:21:1A:2B, Data: "Packet 2"
Frame 3: Source MAC: 00:14:22:01:23:45, Destination MAC: 00:16:17:21:1A:2B, Data: "Packet 3"

1.7 物理层(第1层)

物理层负责实际的数据传输,通过电缆、电信号、光纤或无线电波等物理媒介。

在这一层,数据帧被转换为物理信号(如电信号、光信号或无线电波)并通过网络传输:

html 复制代码
Signal 1: Electric/Optical/Wireless, Data: "Frame 1"
Signal 2: Electric/Optical/Wireless, Data: "Frame 2"
Signal 3: Electric/Optical/Wireless, Data: "Frame 3"

HTTP请求现在已经通过了所有层,并通过网络进行传输。在接收端,请求将通过各层向上重建,直到在服务器端重建出完整的HTTP请求。

1.8 接收端处理流程

  1. 物理层:接收物理信号并转换为数据帧。

  2. 数据链路层:通过MAC地址识别帧并提取IP包。

  3. 网络层:根据IP地址路由包并重组TCP段。

  4. 传输层:通过序列号和确认机制重组完整的HTTP请求数据。

  5. 会话层:管理会话状态,确保请求属于当前会话。

  6. 表示层:解密数据并进行格式转换。

  7. 应用层:最终处理HTTP请求,生成响应并发送回客户端。

相关推荐
开***能1 小时前
降本增效双突破:Profinet转Modbus TCP助力包布机产能与稳定性双提升
数据库·网络协议·tcp/ip
网络空间小黑7 小时前
TCP/IP 知识体系
网络·网络协议·tcp/ip·计算机网络·5g·wireshark·信息与通信
救救孩子把10 小时前
MCP本地高效与云端实时:stdio 与 HTTP+SSE 传输机制深度对比
网络·网络协议·http·sse·mcp·stdio
2501_9159090610 小时前
我用 Appuploader绕过 Mac,成功把 iOS 应用上线了 App Store
websocket·网络协议·tcp/ip·http·网络安全·https·udp
Think Spatial 空间思维13 小时前
【HTTPS基础概念与原理】对称加密与非对称加密在HTTPS中的协作
网络协议·http·https
DourPanda15 小时前
polarctf-web-[rce1]
linux·网络协议·网络安全
purrrew15 小时前
【Java ee初阶】IP协议
服务器·网络协议·tcp/ip
凯雀安全18 小时前
printspoofer的RPC调用接口的简单代码
qt·网络协议·rpc
IP管家19 小时前
物联网设备远程管理:基于代理IP的安全固件更新通道方案
服务器·网络·物联网·网络协议·tcp/ip·安全·ip
矿工学编程20 小时前
.NET 8 kestrel 配置PEM,实现内网https
网络协议·http·https