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

时间:2011-03-25 15:24:40

标签: http sockets tcp rfc

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

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

  

当客户端或服务器希望超时时,应该发出优雅的内容   关闭运输连接。客户端和服务器应该都是   不断地关注运输的另一边,并且   在适当的时候回应。

...

  

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

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

1 个答案:

答案 0 :(得分:1)

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

如果服务器检测到客户端关闭了它(它可以在服务器即将写入套接字时),或者在请求结束时,如果它不支持{{1} }。

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

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

修改

也许这些链接可以帮到你。

Transmission Control Protocol - Functional Specification

TRANSMISSION CONTROL PROTOCOL