首页 文章

符合HTTP 1.1服务器和客户端连接半关闭

提问于
浏览
2

我观察到HTTP 1.1 Server实现,一旦检测到其传出通道的客户端连接关闭(或者更确切地说,在发送正确的http响应之前或之后),就会终止客户端连接 . 这是一个符合HTTP 1.1的实现吗?

RFC 2616第8.1.4节似乎暗示这是正确的行为:

当客户端或服务器希望超时时,应该在传输连接上发出正常关闭 . 客户端和服务器应该经常关注运输关闭的另一端,并在适当时对其进行响应 .

...

除非怀疑网络或客户端故障,否则服务器不应在传输响应的过程中关闭连接 .

我解释得对吗?在HTTP 1.1的上下文中是否有关于半封闭连接处理的更明确的引用?

1 回答

  • 1

    据我所知,这就是我们需要了解的半封闭连接 .

    如果服务器检测到客户端关闭了它(它可以在服务器即将写入套接字时)或者在请求结束时(如果它不支持 connection: keep-alive ),则服务器将仅关闭连接 .

    客户端可以随时断开连接,但它应该告诉服务器它为什么断开连接(time_out,请求取消) . 但是那些编写套接字组件的人并没有使用它 . 当他们需要强制 time_out 时,他们只需关闭套接字 .

    但客户端实现不是问题 . 您应该担心服务器实现,因为这些意外断开会遭受很多损失 .

    EDIT

    也许这些链接可以帮助你 .

    Transmission Control Protocol - Functional Specification

    TRANSMISSION CONTROL PROTOCOL

相关问题