504
Gateway Timeout
Spiegazione generale del codice di stato 504
L'errore HTTP 504 Gateway Timeout si verifica quando un server tenta di rispondere a una richiesta di un client ma non è in grado di farlo entro un tempo ragionevole. Questo errore viene solitamente definito "timeout del gateway" perché spesso si verifica quando un server proxy o un gateway che fa da intermediario tra il client e il server non è in grado di connettersi o di ricevere una risposta dal server. Ciò può avere varie ragioni, come il sovraccarico del server, problemi di rete o una configurazione insufficiente del proxy o del gateway.
.Specifica del codice di stato HTTP 504
Fonte / Citazione da: Il codice di stato HTTP 504 Gateway Timeout è specificato dalla sezione 6.6.5 di RFC7231.
Protocollo HTTP
Come lanciare un codice di stato 504 con PHP?
Per lanciare il codice di stato HTTP 504 su una pagina web, si può usare la funzione PHP http_response_code. La sintassi è la seguente: http_response_code(504) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Test del codice di stato HTTP 504
Per poter visualizzare il codice di stato HTTP (in questo caso 504 Gateway Timeout) e altre informazioni sul lato client, è necessario aprire la console di sviluppo con F12. Quindi navigare nella scheda "Rete". Ora la pagina può essere aperta, il sito web (ad esempio index.php) dovrebbe essere visibile nella scheda Rete. Questo deve essere selezionato e poi deve essere selezionata la sezione Herder. L'utente vedrà quindi il seguente risultato:
URL: https://http-statuscode.com/errorCodeExample.php?code=504
Stato: 504 Gateway Timeout
Quelle: Network
Indirizzo IP: XX.XX.XX.XX
Come posso risolvere il problema del codice di stato 504?
Ci sono diverse possibili ragioni per cui può verificarsi un errore HTTP 504 Gateway Timeout "Gateway Timeout", come ad esempio:
- Carico del server: se un server riceve troppe richieste e non è in grado di rispondere entro un tempo ragionevole, può verificarsi un errore di timeout. Questo problema può essere risolto scalando il server o aggiungendo risorse come CPU, RAM o memoria.
- Problemi di rete: un errore di timeout può verificarsi anche in caso di problemi con la connessione di rete tra il client e il server. Questo problema può essere risolto controllando la connessione di rete, verificando le configurazioni del router o del firewall o riavviando i componenti di rete.
- Problemi di gateway o di gateway: anche un gateway o un proxy che fa da intermediario tra il client e il server può causare un errore di timeout. Questo può essere risolto controllando e regolando le impostazioni del proxy o del gateway.
- Applicazione o database lenti: se un'applicazione o un database funzionano lentamente, anche questo può causare un errore di timeout. Per risolvere il problema, è possibile adottare le seguenti misure:
- Controllare lo stato del server e assicurarsi che non sia sovraccarico.
- Controllare la connessione di rete e assicurarsi che sia stabile e affidabile.
- Controllare la configurazione di proxy o gateway e regolarla se necessario.
- Ottimizzare l'applicazione o il database per migliorarne le prestazioni.
- Riavviare i componenti di rete o i server può anche aiutare a risolvere il problema.
In molti casi, una combinazione di queste misure può risolvere il problema.
Come creare la propria pagina di errore per il codice di stato 504
Apache Webserver
Il server web "Apache" è uno dei server web più comuni su Internet. Per creare la propria pagina di errore 504 Gateway Timeout in "Apache", è necessario apportare la seguente modifica al file seguente.
NGINX Webserver
Simile al server web "Apache", anche "NGINX" è ampiamente utilizzato su Internet. Per creare la propria pagina di errore 504 Gateway Timeout in "NGINX", è necessario apportare la seguente modifica al file seguente.
location = /504.html {
root /usr/share/nginx/html;
internal;
}
Compatibilità con i browser del codice di stato 504
Chrome | no data |
Edge | no data |
Firefox | no data |
Opera | no data |
Safari | no data |
Chrome Android | no data |
Firefox for Android | no data |
Opera Android | no data |
Safari on iOS | no data |
Internet | no data |
WebView Android | no data |
Costanti nei linguaggi di programmazione
HttpStatusCode.GatewayTimeout
http.StatusGatewayTimeout
Response::HTTP_GATEWAY_TIMEOUT
httplib.GATEWAY_TIMEOUT
http.client.GATEWAY_TIMEOUT
http.HTTPStatus.GATEWAY_TIMEOUT
:gateway_timeout