gpt4 book ai didi

c - 在 http 中接收的字节大小可变。我可以假设单词 "GET"或 POST"或 ,"DELETE"将被传递给我相同的 read() 函数调用

转载 作者:行者123 更新时间:2023-12-04 18:59:03 24 4
gpt4 key购买 nike

在 http 请求中接收到的字节在 read() 函数调用中具有可变大小。
我至少可以假设:

3 characters word: "GET"
4 characters word: POST"
6 characters word: "DELETE"
将传递给我相同的 read() 函数调用
或者我可以得到 GE初读和 T在第二次阅读以制作 HTTP 获取请求的“GET”字。
谁能告诉我这个?
我正在使用 linux 内核 5.11.0-36-generic使用命令 uname -r可能是特定于 http 的读取系统调用问题所需的内核版本信息。协议(protocol)或可能不是

最佳答案

Can I atleast assume: will be delivered to my same read() function call


不。

can I get GE in first read and T in second read to make the "GET" word of HTTP get requests.


是的。

好吧,似乎这个答案值得更多的文字。 HTTP 传输协议(protocol)是在 ISO/ OSI model 中的应用层起作用的协议(protocol)。 . HTTP 对其他层发生的事情没有任何要求,因此传输层可以是任何东西,并且消息可以按它想要的任何片段到达,只要消息在到达应用层时是满的。
因为没有要求,所以与 read()无关对传输数据的特定事物进行操作的调用。虽然某些接口(interface)保证您使用一个 write() 写入数据调用一个 read()调用电话,例如 fifo()直到特定大小,有些协议(protocol)不能以任何方式保证这一点。
不过,这无关紧要。 HTTP 不关心数据是以什么 block 传输的,它们可以逐字节传输,或者一次发送两条消息,不关心。当 the application layer message is fully transmitted ,然后数据被应用层解析为 HTTP。
因为没有要求,所以不能假设它们应该由相同的 read() 交付。称呼。无论如何,您应该假设读取 HTTP 消息可能需要多个 read()调用,还假设可能发生 read()可能会因 EAGAIN 而失败无论如何都需要重复。

关于c - 在 http 中接收的字节大小可变。我可以假设单词 "GET"或 POST"或 ,"DELETE"将被传递给我相同的 read() 函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69343765/

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