我正在编写一个小型的http服务器,试图理解超时问题。 RFC7230没有回答这个问题:是什么条件迫使服务器发送超时(408请求超时)?当客户端发送请求时间过长时应该发送吗?或者如果在打开的连接中没有发送任何内容一段时间后呢?逻辑应该是什么?是否有任何标准或行为模型?
整个过程如下: 服务器等待请求 -> 读取请求头 -> 读取请求体 -> 准备响应头 -> 准备响应体。 如果请求时间太长,例如30秒,则服务器将返回带有代码408请求超时的响应头。 下一个情况是当服务器可以读取整个请求头和请求体并尝试处理该请求但无法在一定时间内完成时,它将返回504网关超时或503服务不可用。 这将取决于每种情况。但规则始终是使用4xx表示请求错误,使用5xx表示服务器错误。 这些HTTP代码的简短说明在此处列出:HTTP响应状态码。