414 URI Too Long

A URL é mais longa do que o servidor aceita.

Quando usar

Query strings enormes. Mova os dados para o corpo de um POST.

Causas comuns e soluções

A URL da requisição excede um limite. Gatilhos típicos: query strings enormes montadas a partir de filtros ou listas de IDs, dados em base64 na URL, loops de redirecionamento que acrescentam um parâmetro a cada volta (um returnUrl aninhado dentro de outro returnUrl) e parâmetros de rastreamento empilhados. O nginx responde 414 quando a linha de requisição não cabe em large_client_header_buffers, 8k por padrão, e o LimitRequestLine do Apache é de 8190 bytes.

Mantenha as URLs abaixo de uns 2.000 caracteres para não ter problemas com navegadores, CDNs, ferramentas de analytics e de logs; a Cloudflare limita URLs a 16 KB. A solução é mover os dados para o corpo de um POST, ou enviar o filtro via POST a um endpoint de busca que retorna um ID curto para colocar na URL. Aumentar os limites do servidor funciona, mas cada proxy na cadeia tem o seu próprio limite.

Erro do cliente (4xx)

Os códigos 4xx são erros do cliente: a própria requisição está errada, não está autorizada ou aponta para algo que não existe. Repetir a mesma requisição não vai adiantar.

Como fica

HTTP/1.1 414 URI Too Long

Como enviar

Node.js / Expressres.status(414).end()
Python / Flaskreturn '', 414
nginxreturn 414;

Como verificar

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Abrir Códigos de status HTTP