【问题标题】:NestJs Request Header Size Error Http Code 431NestJs 请求标头大小错误 Http 代码 431
【发布时间】:2020-08-08 20:24:41
【问题描述】:

我正在尝试使用 NestJs 开发 API。当作为 HTTP 标头传递的不记名令牌太长(大约 2400 个字符)时,我收到 Http 错误代码 431。但它在不记名令牌大约 1200 个字符时有效。我们可以做任何设置来增加标题大小限制吗?我正在使用 nodejs12

【问题讨论】:

    标签: node.js nestjs nvm


    【解决方案1】:

    HTTP 431 Request Header Fields Too Large 响应状态码表示服务器拒绝处理请求,因为请求的 HTTP 标头过长。请求头缩小后可以重新提交请求。

    431 可以在total size的请求头太大,或者单个头字段太大的时候使用。为了帮助那些遇到此错误的人,请在响应正文中指出两者中的哪一个是问题——理想情况下,还包括哪些标头太大。这让用户可以尝试解决问题,例如清除他们的 cookie。

    如果出现以下情况,服务器通常会产生此状态:

    • Referer URL 太长
    • 请求中发送的 Cookie 过多

    以下解决方案并非特定于nest.js,而是适用于任何node.js 服务器。

    在运行 node --help 时,您会看到以下标志之一:

    ...
    
    --max-http-header-size=...                set the maximum size of HTTP headers (default: 8KB)
    
    ...
    

    这个 Node.js CLI 标志可以提供帮助:

    --max-http-header-size=16384
    

    它将 HTTP 最大标头大小设置为 16KB。

    您可以将此标志设置为您想要的值。

    参考this

    文档说明了此标志的最大大小,因此请注意这一点。

    【讨论】:

    • 谢谢卡西克。我仅在本地环境中收到此错误(我使用的是 nvm)。当我将其部署为 AWS Lambda 函数时,我没有看到此错误
    猜你喜欢
    • 2020-10-29
    • 2020-10-27
    • 2019-11-09
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    相关资源
    最近更新 更多