431 Request Header Fields Too Large (RFC 6585) significa que o servidor não está disposto a processar a requisição porque um único campo de cabeçalho, ou todos eles juntos, são grandes demais. O cliente pode tentar de novo depois de reduzir o tamanho dos cabeçalhos.
Os cookies costumam ser os culpados: um site e seus subdomínios definem cada vez mais cookies, até que o cabeçalho Cookie ultrapasse o limite do servidor. URLs de Referer muito longas e tokens de autenticação grandes também podem causá-lo. O Node.js, por exemplo, responde 431 quando os cabeçalhos excedem o limite dele, algo que os desenvolvedores encontram com frequência em localhost, onde se acumulam cookies de muitos projetos locais.
Nem todo servidor usa o 431. O nginx, por exemplo, retorna 400 Bad Request com “Request Header Or Cookie Too Large”.
Exemplo de resposta
HTTP/1.1 431 Request Header Fields Too Large
Connection: close SEO e verificação de redirecionamentos
Os rastreadores enviam cabeçalhos pequenos e sem cookies; por isso, quase nunca acionam o 431. Se uma verificação de redirecionamentos retornar 431, reduza o tamanho dos cabeçalhos personalizados ou dos cookies que você adicionou.
Causas comuns e casos de uso
- Cookies acumulados para um domínio e seus subdomínios. Apague-os ou defina menos cookies, e menores.
- JWTs grandes ou outros cabeçalhos de autorização.
- Cabeçalhos
Referermuito longos, vindos de URLs com query strings enormes. - Um limite baixo de tamanho de cabeçalho em um servidor Node.js (
--max-http-header-size), em um proxy ou em um balanceador de carga.