首页 > 解决方案 > HTTP 请求如何被拆分为多个数据包?

问题描述

我是一名应用程序开发人员,正在研究如何在传输层传递 HTTP 请求/响应,并找到了一些对我有帮助的好资源,但仍有一些问题我无法追踪

该线程帮助我理解,当请求向下传递到每一层时,该层将使用标头“封装”有效负载,直到它通过网络发送

在此处输入图像描述

所以我目前的理解是 HTTP 请求实际上是一个有效负载,然后 TCP 层将在其上抛出一些标头。这些标头似乎主要用于跟踪将来回传输的消息数据包的顺序

TCP 标头:
在此处输入图像描述

然后 IP 标头被打上(https://www.thegeekstuff.com/2012/03/ip-protocol-header/),它只跟踪数据包的源/目的地和大小


很明显,每个 HTTP 请求都不会 1:1 映射到一个数据包,根据我发现的情况,看起来请求可以分解为多个片段以通过 TCP 流式传输

如果需要分解请求,那么执行此操作的代码在哪里?

标签: httptcppacket

解决方案


推荐阅读