gpt4 book ai didi

c++ - 接收 HTTP header

转载 作者:太空狗 更新时间:2023-10-29 19:44:34 24 4
gpt4 key购买 nike

出于教育目的,我正在用 C++ 编写一个 HTTP 服务器。收到请求时,我如何知道客户端何时发送完 header ?是否有义务一次性发送所有 header ?如果客户端发送 G,然后在 5 秒后发送 E,然后是 T..?如果时间太长,我应该等待超时并关闭连接吗?我是否应该在获得第一个字节后立即开始解析以了解请求是否无效?

我知道为此有很多库,我只是重新发明轮子以更好地理解 Web 在不同层的工作方式。而且我找不到他们是如何处理我的问题的。

最佳答案

根据HTTP 1.1 RFC (4.1) :

    generic-message = start-line
*(message-header CRLF)
CRLF
[ message-body ]
start-line = Request-Line | Status-Line

消息头后多了一个CRLF。因此,一旦遇到序列 CRLF -> CRLF,正文就开始了。

关于超时:您可以在接收到字符后开始解析(等待 CRLF,这样您就知道 header 已完成),一旦请求花费的时间超过 5 秒左右,就发回 408 Request Timeout .

关于c++ - 接收 HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6640363/

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