跳转到内容
搜索文档

错误 499

最后更新 查看 MarkdownAgent 设置

排查 HTTP 499 错误响应。

499 Client Close Request

当客户端在服务器能够响应之前终止连接时,通常会出现 HTTP 499 响应代码。

常见用例

499 响应代码的示例包括:客户端在服务器完成处理之前超时并关闭连接的情况,例如在大文件上传或长时间运行的请求期间。它们也可能因 TCP 三次握手问题而发生,即客户端因其超时设置而过早终止连接。

Cloudflare 特定信息

499 Client Closed Request 状态码是 nginx 特有的,表示客户端在服务器仍在处理请求时关闭了连接,导致服务器无法发送响应状态码。此状态码会出现在 Cloudflare Logs 以及 Enterprise 客户的状态码分析中。

为提供更多背景:在任何更高层协议(例如 HTTP)开始通信之前,必须在 Cloudflare 与网站源站服务器之间建立 TCP 连接。TCP 使用三次握手建立连接:

  • SYN:Cloudflare 向源站服务器发送 SYN 数据包。
  • SYN+ACK:源站服务器以 SYN+ACK 数据包响应。
  • ACK:Cloudflare 向源站服务器发回 ACK 数据包。

此时连接已建立,Cloudflare 和源站服务器可以通信。但是,如果源站服务器未在 19 秒内向 Cloudflare 发回 SYN+ACK,Cloudflare 会再重试一次,并设置另一个 15 秒超时。

根据客户端超时设置,可能出现以下情况:

  • 较短的客户端超时(少于 38 秒):如果客户端超时较短,它会在 Cloudflare 完成处理之前放弃连接,并记录 499 响应代码。
  • 成功连接(超过 38 秒):如果客户端超时较长且 TCP 连接成功建立,HTTP 事务将正常进行,Cloudflare 返回标准状态码(HTTP 200)。
  • 握手失败:如果客户端超时较长,但 Cloudflare 无法与源站服务器建立 TCP 握手,Cloudflare 将返回 HTTP 522 状态码。

使用 Origin Analytics 进行诊断

使用 Origin Analytics 检查源站响应时间过慢是否导致客户端过早关闭连接。如果 P95 源站响应时间较高,请在 Top endpoints 表中识别较慢的端点并进行优化,以减少 499 错误。

这篇文档对您有帮助吗?