400 Bad Request è l’errore generico del client. Il server rifiuta di elaborare la richiesta perché ritiene che qualcosa non vada: sintassi non valida, framing del messaggio non valido, instradamento ingannevole della richiesta, un’intestazione Host errata, un parametro di query non valido o un corpo che non si riesce ad analizzare. Il client non dovrebbe ripetere la richiesta senza modificarla.
Molti server usano il 400 per problemi che hanno codici propri e più specifici. nginx, per esempio, risponde “400 Bad Request: Request Header Or Cookie Too Large” quando le intestazioni superano i suoi buffer, mentre 431 sarebbe più preciso, e molte API restituiscono 400 per errori di validazione che potrebbero essere 422.
Il corpo della risposta è di solito il posto migliore in cui cercare il motivo effettivo.
Esempio di risposta
HTTP/1.1 400 Bad Request
Date: Fri, 06 Nov 2026 10:15:32 GMT
Server: nginx
Content-Type: text/html
Content-Length: 217
Connection: close
<html>
<head><title>400 Request Header Or Cookie Too Large</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<center>Request Header Or Cookie Too Large</center>
<hr><center>nginx</center>
</body>
</html> SEO e verifica dei redirect
I motori di ricerca trattano il 400 come gli altri errori 4xx: l’URL non viene indicizzato, e un URL indicizzato che inizia a restituire 400 viene rimosso. I crawler inviano richieste piccole e standard, senza cookie, quindi un 400 che ricevono solo i crawler deriva di solito da caratteri insoliti in un URL o da una regola del firewall. In una verifica dei redirect, un 400 a metà di una catena indica spesso che un reindirizzamento ha prodotto un URL non valido, per esempio con caratteri codificati due volte o una query string danneggiata.
Cause comuni e casi d’uso
- Cookie troppo numerosi o troppo grandi. Cancella i cookie del sito, oppure aumenta
large_client_header_buffersin nginx. - Un URL non valido, per esempio con spazi non codificati, percent-encoding errato o un’intestazione
Hostnon valida. - Una richiesta API con JSON non valido o senza i parametri obbligatori.
- Una richiesta HTTP in chiaro inviata a una porta HTTPS, che nginx segnala come “The plain HTTP request was sent to HTTPS port”.