431 Request Header Fields Too Large (RFC 6585) indica che il server non intende elaborare la richiesta perché un singolo campo di intestazione, o l’insieme di tutti i campi, è troppo grande. Il client può riprovare dopo aver ridotto la dimensione delle intestazioni.
Di solito i colpevoli sono i cookie: un sito e i suoi sottodomini impostano sempre più cookie finché l’intestazione Cookie supera il limite del server. Possono causarlo anche URL Referer molto lunghi e token di autenticazione di grandi dimensioni. Node.js, per esempio, risponde 431 quando le intestazioni superano il suo limite, cosa che capita spesso agli sviluppatori su localhost, dove si accumulano i cookie di molti progetti locali.
Non tutti i server usano il 431. nginx, per esempio, restituisce invece 400 Bad Request con “Request Header Or Cookie Too Large”.
Esempio di risposta
HTTP/1.1 431 Request Header Fields Too Large
Connection: close SEO e verifica dei redirect
I crawler inviano intestazioni piccole e senza cookie, quindi non provocano quasi mai un 431. Se una verifica redirect restituisce 431, riduci la dimensione delle intestazioni personalizzate o dei cookie che hai aggiunto.
Cause comuni e casi d’uso
- Si sono accumulati cookie per un dominio e i suoi sottodomini. Eliminali, oppure imposta meno cookie e più piccoli.
- JWT o altre intestazioni di autorizzazione di grandi dimensioni.
- Intestazioni
Referermolto lunghe, provenienti da URL con query string enormi. - Un limite basso sulla dimensione delle intestazioni in un server Node.js (
--max-http-header-size), in un proxy o in un load balancer.