gpt4 book ai didi

HTTP:发送请求后关闭用于写入的套接字?

转载 作者:可可西里 更新时间:2023-11-01 16:34:48 26 4
gpt4 key购买 nike

HTTP 客户端使用的套接字如何在发送请求后正确关闭?或者它是否必须保持打开状态(双向)直到收到完整的响应?如果是,服务器端如何判断请求体的结尾?

根据 http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4 ,关闭套接字不是请求的选项。这对我来说听起来不合逻辑——为什么半关闭的 TCP 连接对服务器来说是个问题,如果客户端在关闭它的一半套接字后不尝试传输任何东西?客户端终究还是可以收到数据的。

在我看来,关闭套接字的写入部分是让服务器知道请求已完成的一种非常实用的方法。 http://docs.python.org/howto/sockets.html#disconnecting甚至特别提到了那个用例。

如果那确实是错误的方法,还有什么替代方法?我真的总是必须发送“内容长度”或使用分块传输以使服务器能够正确找到请求的结尾吗?这对于主体长度未知的请求如何工作?

最佳答案

Transfer-Encoding: chunked 专门设计用于允许为请求和响应发送主体长度未知的数据。数据的结尾由接收到的有效负载大小为 0 的 block 决定。如果您不发送 chunked 请求,则必须发送 Content-Length

关于HTTP:发送请求后关闭用于写入的套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8855804/

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