关于HTTP连接关闭我有两个问题:
如果客户端发送带有Connection的HTTP请求:接近HTTP Server,客户端收到响应后发送TCP FIN是HTTP服务器还是客户端责任?
如果客户端发送格式错误的HTTP请求,并且服务器发送400 BAD REQUEST,最好是按服务器关闭连接(即使HTTP请求有连接:keep-alive),还是保持连接仍然有效的良好做法?
提前感谢您回答我的问题?
答案 0 :(得分:4)
当服务器收到400 Bad Request时,它将发送带有keep-alive标头的响应,因为如果客户端感觉要发送另一个请求,那么他们可以使用预先存在的连接(此连接)在一定时间内关闭,它有一个到期日期)。 Keep-Alive Header更多的是不使TCP连接需求饱和网络。你基本上会说“我要跟你说话,2分钟,无论你寄给我什么,我会通过这种联系回答你”
服务器只是一个从用户接收命令的对象。你问他,他有没有。 TCP FIN是您发送到服务器以关闭连接的内容,但您选择何时不想再与他通信。客户端发送第一个FIN,并接收ACK以确保服务器获得它。然后服务器启动自己的FIN,并等待ACK。如果一切正常,您和您的服务器将不再是朋友。