431 communication resource_error ai_generated true

HTTP/1.1 431 请求头字段过大

HTTP/1.1 431 Request Header Fields Too Large

ID: communication/http-431-request-header-fields-too-large

其他格式: JSON · Markdown 中文 · English
90%修复率
90%置信度
1证据数
2024-06-30首次发现

版本兼容性

版本状态引入弃用备注
nginx 1.26.0 active
Apache HTTP Server 2.4.59 active
Node.js 22.0.0 active

根因分析

HTTP请求头的总大小超过了服务器的配置限制(通常为8 KB到16 KB)。

English

The total size of HTTP request headers exceeds the server's configured limit (typically 8 KB to 16 KB).

generic

官方文档

https://httpwg.org/specs/rfc6585.html#status-431

解决方案

  1. Increase the server's request header buffer size. For Nginx: 'large_client_header_buffers 4 32k;' in http or server block. For Apache: 'LimitRequestFieldSize 16380' in httpd.conf.
  2. Reduce cookie sizes or move large state to server-side sessions. Example in Express.js: app.use(session({ store: new RedisStore(), cookie: { maxAge: 60000 } })) — store session data server-side instead of in cookies.

无效尝试

常见但无效的做法:

  1. Increase server memory or CPU 90% 失败

    The error is a hard limit on header size, not a resource shortage; memory increase does not affect the limit.

  2. Disable all security modules or firewalls 50% 失败

    Most security tools do not cause this error; disabling them may expose the server without fixing the header size issue.