back to top

Errore 413 Request Entity Too Large: cos’è e come risolverlo

L’errore in oggetto appartiene alla famiglia dei codici di stato HTTP 4xx i quali identificano gli errori connessi alla richiesta effettuata dal client. In questo articolo, in modo dettagliato, vedremo in cosa consiste l’errore 413 Request Entity Too Large ed in che modo è possibile risolverlo.

Cos’è l’errore 413?

L’errore 413 Request Entity Too Large si verifica quando si tenta di caricare un file di dimensioni che superano il limite massimo di caricamento impostato nel web server remoto.

In altre parole si sta cercando di effettuare l’upload di un file troppo grande, pertanto il web server – non potendolo gestire – restituisce all’utente un messaggio di errore in cui lo informa che "l’entità della richiesta è troppo grande".

Il messaggio mostrato all’utente può variare a seconda del web-server remoto nonché in base al client. Di seguito le diciture comuni che indicano il verificarsi di questo errore:

  • Error 413
  • HTTP Error 423
  • HTTP Code 413
  • 413 Request Entity Too Large

Come risolvere l’errore 413 Request Entity Too Large?

Questo tipo di problema non è di natura transitoria, questo significa che ricaricare la pagina o riprovare in un altro momento non poterebbe ad alcun risultato utile. Questo problema, infatti, non dipende da errori di elaborazione o sovraccarichi momentanei, ma da una esplicita configurazione del web server che, in quanto tale, produrrà sempre il medesimo risultato.

Alla luce di quanto detto, le possibili soluzioni all’errore 413 sono soltamnto due:

  1. effettuare l’upload di un minor numero di file o ridurne, ove possibile, la dimensione;
  2. effettuare una modifica alla configurazione del web-server al fine di ammettere l’upload di una maggior quantità di dati.

Aumentare la dimensione massima consentita per gli upload in PHP

Agendo sul file php.ini è possibile aumentare, se necessario, il limite impostato di default. Per effettuare questa operazione è necessario agire su due distinte direttive: post_max_size e upload_max_filesize.

upload_max_filesize = 64M
post_max_size = 65M
memory_limit = 65M

Nel nostro esempio il limite massimo per l’upload è fissato in 64 Mb. Si noti che le direttive post_max_size e memory_limit sono state impostate, come da buone abitudini, con un valore leggermente superiore.

Se non avete accesso al file php.ini potete provare ad eseguire questa operazione tramite il file .htaccess aggiungendo queste istruzioni:

php_value upload_max_filesize 64M
php_value post_max_size 65M
php_value memory_limit 65M

Si noti, tuttavia, che non sempre la modifica delle impostazioni di PHP è ammessa da .htaccess, quindi è anche possibile che l’aggiunta di questo codice non produca effetti o generi un errore 500 (questo accade, generalmente, quando PHP "gira" in modalità CGI).

Attenzione: a partire dalla versione 5.3 di PHP non è possibile agire su questi parametri utilizzando la funzione ini_set() ma è sempre necessario agire su php.ini, .htaccess, httpd.conf o .user.ini.

Risolvere l’errore 413 su NGINX

Se il vostro hosting provider utilizza NGINX, oltre alla modifica del file php.ini sarà necessaro intervenire sul file di configurazione NGINX all’interno del blocco body, in questo modo:

http {
  client_max_body_size 64m;
}

Una volta conclusa la modifica sarà necessario effettuare il riavvio in questo modo:

service php5-fpm restart
service nginx reload

Ovviamente la modifica autonoma della configurazione di NGINX non è possibile in ambienti condivisi, pertanto l’unica opzione disponibile sarà contattare il vostro hosting provider.

File di grandi dimensioni e tempi di esecuzione

E’ importante sottolineare che le modifiche appena viste potrebbero produrre un effetto secondario non irrilevante. Consentire l’upload i file molto grandi, infatti, potrebbe avere un impatto anche sui tempi di esecuzione degli script (l’invio e la gestione di grosse mole di dati richiede tempo).

Il rischio, pertanto, è di risolvere l’errore 413 ma ritrovarsi nel bel mezzo dell’errore 504 Gateway timeout. In questo caso il consiglio è quello di aumentare il tempo massimo di esecuzione limitatamente allo script che gestisce l’upload.

Per farlo potrebbe essere sufficiente aggiungere, in cima allo script, questa riga di codice:

ini_set( 'max_execution_time', '300' );

Conclusione

L’errore 413 Request Entity Too Large è legato alla dimensione della richiesta del client. L’unico modo per risolvere questo errore consiste nel ridurre la dimensione della richiesta (ad esempio inviando file meno pesanti) oppure modificare le impostazioni del web-server in uno dei modi visti sopra.

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

ERR_TOO_MANY_REDIRECTS: cos’è e come risolvere l’errore

L'errore ERR_TOO_MANY_REDIRECTS si verifica quando un browser tenta di...

Lucchetto HTTPS barrato di rosso: cosa significa e come risolvere

Il lucchetto HTTPS barrato di rosso mostrato dal browser...

Risolvere l’errore Bad Request … Size of a request header field exceeds server limit

L'errore "Bad Request: Your browser sent a request that...

NGinx: cos’è, come funziona e perché conviene usarlo

Prima di parlare di NGinx, delle sue caratteristiche e...

Errore 410: cos’è, quando si verifica e come risolvere (se necessario)

Il codice di stato HTTP 410 (o “Gone”), più...

Errore 451 Unavailable For Legal Reasons: cos’è e quando si verifica

L'errore HTTP 451 Unavailable For Legal Reasons รจ un...
Pubblicitร