2

我在服务器上工作,想知道什么时候应该尊重标头中的 keep-alive?如果客户端在没有授权或授权不正确的情况下发送请求,是否应该在发送 401 响应后遵守保持活动状态?

更广泛的问题是:是否有文件或标准显示哪些代码应该尊重保活,哪些不应该?我可以看到 500 不尊重保持活动,但也许仍然尊重 400 的保持活动。

目前这是正在使用的逻辑:

if ((400 <= status) && (505 >= status)
{
    keep-alive = false;
}
else
{
    //Do not update keep alive leave as what client requested
}

谢谢!

4

1 回答 1

0

大多数服务器都会指定连接类型,即使在 HTTP/1.1 中“连接:关闭”是默认设置。连接类型通常在标题的底部指定,即使它不需要。对于什么样的 HTTP 代码应该改变连接类型没有约定。

如果它是 4- 或 5- 代码,您通常会关闭连接,因为您不希望用户代理(浏览器)尝试与服务器交互,直到用户刷新网页或尝试访问另一个网页。当客户端想要访问服务器上的另一个资源时,保持连接打开只会稍微快一点。

许多服务器在每次请求后关闭连接。请注意,如果用户代理在标题中指定“连接:关闭”,无论您回复什么,连接都将始终关闭。

每当您指定关闭连接时,客户端都会期望您关闭连接,此标头仅用于告诉 Socket 末尾的内容您在做什么。

于 2014-12-24T09:00:49.013 回答