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

目录

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

1.1 应用层(第7层)

1.2 表示层(第6层)

1.3 会话层(第5层)

1.4 传输层(第4层)

1.5 网络层(第3层)

1.6 数据链路层(第2层)

1.7 物理层(第1层)

1.8 接收端处理流程


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

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

1.1 应用层(第7层)

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

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

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来跟踪用户会话:

Cookie: sessionId=abc123

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

1.4 传输层(第4层)

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

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

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地址信息:


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地址:

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层)

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

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

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请求,生成响应并发送回客户端。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/839600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【vue部署】Apache部署vue项目

Apache部署vue项目 Apache 下载安装(windows)1. 下载2. 安装3. 启动服务 vue 部署配置1. 基础配置2. 解决页面刷新问题 Apache 下载安装(windows) 1. 下载 Apache 2.4.59 下载地址:httpd-2.4.59-240404-win64-VS17.zip Visual C Redistributable for Visual Studi…

AWS EC2 连接 AWS RDS(Mysql)

1 创建RDS数据库 点击创建数据库 引擎选项 模板 设置 连接 2 EC2连接Mysql $ sudo yum list mariadb* Installed Packages mariadb-connector-c.x86_64 3.1.13-1.amzn2023.0.3 amazonl…

TikTok矩阵管理系统:品牌增长的新引擎

随着社交媒体的快速发展,TikTok已成为全球最受欢迎的短视频平台之一。品牌和企业纷纷涌入这个平台,寻求新的增长机会。然而,随着内容的激增和用户群体的多样化,管理TikTok账号变得越来越复杂。这时,TikTok矩阵管理系统…

使用第三方的PyCharm开发工具

目录 PyCharm下载 PyCharm安装 运行PyCharm 创建工程目录 编写“hello world”程序 在同一个工程下创建多个程序文件 运行程序的多种方法 保存程序 关闭程序或工程 删除程序 打开最近的工程 调试断点 熟悉PyCharm开发环境 设置Python解析器 输出彩色控制台文字及…

50道题目!Python、SQL数据库、AB测试、业务分析、机器学习都在这里了!

介绍 每日一题系列已经更新了50道题目啦! 题目难度为初级到中级,涵盖了Python、SQL数据库、AB测试、业务分析、机器学习五大主题,适合初学者和有一定基础的朋友。 原文链接: 50道题目!Python、SQL数据库、AB测试、业务分析、机器…

pycharm 关闭项目卡死

PyCharm2023.3.4 关闭一直卡在 closing projects 解决办法: 打开PyCharm, 选择 Help -> Find Action -> 输入 Registry -> 禁用ide.await.scope.completion

10G SFP双口万兆以太网控制器,高速光口网络接口卡

2-Port 10G SFP NIC 是一款高速网 络接口卡,采用了 PCI Express 3.0 x8 接口,支持双 端口万兆以太网,具有高性能、高可靠性、低功耗等 优点,是数据中心、云计算、虚拟化等领域的理想选 择。 支持多种网络协议,如 …

【加密与解密(第四版)】第十六章笔记

第十六章 脱壳技术 16.1 基础知识 壳的加载过程:保存入口参数、获取壳本身需要使用的API地址、解密原程序各个区块的数据、IAT的初始化、重定位项的处理、HOOK API、跳转到程序原入口点 手动脱壳步骤:查找真正的入口点、抓取内存映像文件、重建PE文件&…

深度学习之基于Pytorch框架新冠肺炎CT图像分类

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着新冠肺炎(COVID-19)的全球爆发,快速、准确地诊断疾病成…

Python筑基之旅-MySQL数据库(二)

目录 一、第三方库 1、mysql-connector-python 1-1、由来 1-2、优缺点 1-2-1、优点 1-2-1-1、官方支持 1-2-1-2、纯Python实现 1-2-1-3、全面支持 1-2-1-4、兼容性 1-2-1-5、易于使用 1-2-2、缺点 1-2-2-1、性能 1-2-2-2、安装 1-2-2-3、社区支持 1-2-2-4、扩…

1020. 飞地的数量

1020. 飞地的数量 原题链接:完成情况:解题思路:参考代码:_1020飞地的数量_dfs_定义方向_1020飞地的数量_bfs_定义方向 错误经验吸取 原题链接: 1020. 飞地的数量 https://leetcode.cn/problems/number-of-enclaves/…

十年磨一剑“2024成都电子信息展会”推动电子产业全球发展

2024成都电子展,招商工作已接近尾声,这场盛大的展会不仅是电子信息行业的一次盛会,更是中国西部电子信息产业发展的重要里程碑。自2013年起,中国(西部)电子信息博览会便选择成都作为其永久的举办地&#xf…

windows系统jupyter lab安装和配置:本地开发、探索大模型的利器

前言 在安装好anaconda之后,系统默认就安装好了一个jupyter notebook的工具,该工具可以在网页端运行,类似这样: 提供了一个按行运行的python运行环境,每一步的输出都可以打印到界面,对于我们初学python&am…

JAVA语音播报

JAVA语音播报 提示:难点,常规语音播放只是播放一段音乐,这个比较简单。本文介绍将文字语音播放出来,并且可以兼容windows、linux 语音播报在编码过程中,我们主要需从以下几个核心层面进行深入考量。 1.使用JACOB开源…

2024上海国际化工自动化仪器仪表展览会

2024上海国际化工自动化仪器仪表展览会 2024 Shanghai International Chemical Automation Instrument Exhibition 时间:2024年12月11-13日 地点:上海新国际博览中心 详询主办方陆先生 I38(前三位) I82I(中间四位…

SpringBean-生命周期

Spirng Bean 元信息配置阶段 1 面向资源 xml配置(很熟悉了不做讨论)Properties配置 public class BeanMetaDemo {public static void main(String[] args) {DefaultListableBeanFactory factory new DefaultListableBeanFactory();PropertiesBeanDef…

【Java面试】三、Redis篇(下)

文章目录 1、抢券场景2、Redis分布式锁3、Redisson实现分布式锁4、Redisson实现的分布式锁是可重入锁5、Redisson实现分布式锁下的主从一致性6、面试 1、抢券场景 正常思路: 代码实现: 比如优惠券数量为1。正常情况下:用户A的请求过来&a…

DeepRec Extension 打造稳定高效的分布式训练

DeepRec Extension 即 DeepRec 扩展,在 DeepRec 训练推理框架之上,围绕大规模稀疏模型分布式训练,我们从训练任务的视角提出了自动弹性训练,分布式容错等功能,进一步提升稀疏模型训练的整体效率,助力 DeepR…

开源RAG,本地mac启动 dify源码服务

一、Dify文档 参考官方文档来操作,基本没太大的问题。一些细节,我在本篇文章中补充了出来。 这篇文章主要讲以源码的方式启动后端服务,前端服务使用容器启动。 dify 文档地址 欢迎使用 Dify | 中文 | Dify Dify 本地源码部署文档&#xff…

如何解读伊朗发布的直升机事故调查报告?一般事故调查报告应怎么写?

如何解读伊朗发布的直升机事故调查报告?一般事故调查报告应怎么写? 据央视新闻客户端消息:当地时间5月23日,伊朗武装部队总参谋部发布首份已故总统莱希及其随行人员乘坐的直升机事故调查报告。以下是#李秘书讲写作#对报告内容的解…