我在一台服务器上工作,想知道它什么时候应该尊重头部中的keep-alive?如果客户端在没有或不正确授权的情况下发送请求,是否应该在发送401响应后遵守keep alive?
更广泛的问题是:有没有一个文档或标准来说明哪些代码应该遵守keep-alive,哪些代码不应该?我可以看到500不是在尊重keep-alive,但也许仍然在尊重400的keep-alive。
当前使用的逻辑如下:
if ((400 <= status) && (505 >= status)
{
keep-alive = false;
}
else
{
//Do not update keep alive leave as what client requested
}谢谢!
发布于 2014-12-24 17:00:49
大多数服务器指定连接类型,即使在HTTP/1.1中" connection : close“是缺省的。连接类型通常在标头的底部指定,即使它不需要指定。对于哪种HTTP代码应该改变连接类型,没有约定。
如果是4--或5--代码,通常会关闭连接,因为在用户刷新网页或尝试访问另一个网页之前,您不会期望用户代理(浏览器)尝试与服务器交互。当客户端想要访问服务器上的另一个资源时,保持连接打开只会使它稍微快一点。
很多服务器在每次请求后都会关闭连接。请注意,如果用户代理在报头中指定了" connection : close“,则无论您如何回复,连接都将始终关闭。
每当你指定关闭连接时,客户端都会期望你关闭连接,这个头只是告诉套接字末尾的东西你在做什么。
https://stackoverflow.com/questions/18070437
复制相似问题