HTTP服务器超时。何时应该发送?

4
我正在编写一个小型的http服务器,试图理解超时问题。 RFC7230没有回答这个问题:是什么条件迫使服务器发送超时(408请求超时)?当客户端发送请求时间过长时应该发送吗?或者如果在打开的连接中没有发送任何内容一段时间后呢?逻辑应该是什么?是否有任何标准或行为模型?
1个回答

3
整个过程如下: 服务器等待请求 -> 读取请求头 -> 读取请求体 -> 准备响应头 -> 准备响应体。 如果请求时间太长,例如30秒,则服务器将返回带有代码408请求超时的响应头。 下一个情况是当服务器可以读取整个请求头和请求体并尝试处理该请求但无法在一定时间内完成时,它将返回504网关超时或503服务不可用。 这将取决于每种情况。但规则始终是使用4xx表示请求错误,使用5xx表示服务器错误。 这些HTTP代码的简短说明在此处列出:HTTP响应状态码

4
如果连接并未处于空闲状态,就不应该返回HTTP 408。例如,如果客户端正在上传内容并且时间超过30秒,则不应该返回408,因为连接仍然处于活动状态。您需要监控线路上是否有任何活动。 - oligofren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接