gpt4 book ai didi

http - 在 TCP 负载之间拆分 CRLF

转载 作者:可可西里 更新时间:2023-11-01 02:37:38 26 4
gpt4 key购买 nike

我目前正在编写一个低级 HTTP 解析器并遇到了以下问题:

我在逐个数据包的基础上接收 HTTP 数据,即一次一个 TCP 有效负载。在解析这些数据时,我使用搜索 CRLF 的 HTTP 协议(protocol)标准来描述标题行、 block 数据(在分 block 编码的情况下),以及双 CRLF 来描述标题和正文。

我的问题是:我是否需要担心 CRLF 被拆分为两个 TCP 数据包负载的可能性?例如,HTTP header 将以 CRLFCRLF 结尾。有没有可能后面两个TCP包都会有CR,然后有LFCRLF?

我假设是的;这是一个需要担心的情​​况,因为应用程序 (HTTP) 和 TCP 层彼此相当独立。

非常感谢任何对此的见解,谢谢!

最佳答案

是的,CRLF 有可能被拆分成不同的 TCP 数据包。想一想单个 HTTP header 比 TCP MTU 长一个字节的可能性。在这种情况下,只有 CR 有空间,而 NL 没有空间。

因此无论您的代码变得多么棘手,它都必须能够处理这种拆分情况。

关于http - 在 TCP 负载之间拆分 CRLF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7276407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com