如何在超时时在http服务器和浏览器端发出优雅的关闭?

时间:2011-08-27 11:47:53

标签: http tcp http-headers http-1.1

在http1.1(http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html)中,它说:

  

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

我的问题是:如果超时,如何在http服务器和浏览器端发出优雅关闭

1 个答案:

答案 0 :(得分:0)

您必须在任何一侧关闭TCP连接。另一侧的连接将自动关闭。

如果您想知道如何实现自动关闭:

当其他方想要关闭连接时,它会在tcp标题处发送FIN。在程序端,您的套接字将由select函数激活,recv函数返回将为0.所以:

if (recv(socket, ...) == 0) 
  closesocket(socket);