504 durum kodunun genel açıklaması
504 Gateway Timeout HTTP hatası, bir sunucu istemciden gelen bir isteği yanıtlamaya çalıştığında ancak bunu makul bir süre içinde yapamadığında ortaya çıkar. Bu hata genellikle "ağ geçidi zaman aşımı" olarak adlandırılır çünkü genellikle istemci ile sunucu arasında aracılık yapan bir proxy sunucusu veya ağ geçidi sunucuya bağlanamadığında veya sunucudan yanıt alamadığında ortaya çıkar. Bunun, sunucunun aşırı yüklenmesi, ağ sorunları veya proxy ya da ağ geçidinin yetersiz yapılandırılması gibi çeşitli nedenleri olabilir
.HTTP durum kodu 504'ün belirtimi
Kaynak / Alıntı: 504 Gateway Timeout HTTP durum kodu RFC7231 bölümünün 6.6.5 kısmında belirtilmiştir.
HTTP protokolü
PHP ile 504 durum kodu nasıl atılır?
Bir web sayfasında HTTP durum kodu 504'ü atmak için PHP işlevi http_response_code kullanılabilir. Sözdizimi aşağıdaki gibidir: http_response_code(504) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
504 HTTP Durum Kodunu Test Etme
HTTP durum kodunu (bu durumda 504 Gateway Timeout) ve istemci tarafındaki diğer bilgileri görüntüleyebilmek için geliştirme konsolu F12 ile açılmalıdır. Ardından "Ağ" sekmesine gidin. Artık sayfa açılabilir, web sitesi (örnek index.php) ağ sekmesinde görünür olmalıdır. Bu seçilmeli ve ardından Herder bölümü seçilmelidir. Kullanıcı daha sonra aşağıdaki sonucu görecektir:
URL: https://http-statuscode.com/errorCodeExample.php?code=504
Durum: 504 Gateway Timeout
Şunlar: Network
IP adresi: XX.XX.XX.XX
504 durum koduyla ilgili sorunu nasıl çözebilirim?
504 Gateway Timeout "Ağ Geçidi Zaman Aşımı" HTTP hatasının oluşmasının birkaç olası nedeni vardır, örneğin:
- Sunucu aşırı yüklenmesi: Bir sunucu çok fazla istek alırsa ve bunları makul bir süre içinde yanıtlayamazsa, zaman aşımı hatası oluşabilir. Bu, sunucuyu ölçeklendirerek veya CPU, RAM veya depolama alanı gibi kaynaklar ekleyerek çözülebilir.
- Ağ sorunları: İstemci ile sunucu arasındaki ağ bağlantısında sorunlar varsa da zaman aşımı hatası oluşabilir. Bu durum ağ bağlantısı kontrol edilerek, yönlendirici veya güvenlik duvarı yapılandırmaları kontrol edilerek veya ağ bileşenleri yeniden başlatılarak düzeltilebilir.
- Proxy veya ağ geçidi sorunları: İstemci ve sunucu arasında aracılık yapan bir ağ geçidi veya proxy de zaman aşımı hatasına neden olabilir. Bu durum, proxy veya ağ geçidi ayarları kontrol edilerek ve ayarlanarak düzeltilebilir.
- Yavaş uygulama veya veritabanı: Bir uygulama veya veritabanı yavaş çalışıyorsa, bu da zaman aşımı hatasına yol açabilir. Bu, uygulama veya veritabanı optimize edilerek düzeltilebilir.
Sorunu çözmek için aşağıdaki önlemler alınabilir:
- Sunucu durumunu kontrol edin ve aşırı yüklenmediğinden emin olun.
- Ağ bağlantısını kontrol edin ve kararlı ve güvenilir olduğundan emin olun.
- Proxy'lerin veya ağ geçitlerinin yapılandırmasını kontrol edin ve gerekirse ayarlayın.
- Performansını artırmak için uygulamayı veya veritabanını optimize edin.
- Ağ bileşenlerini veya sunucuları yeniden başlatmak da sorunu çözmeye yardımcı olabilir.
Çoğu durumda, bu önlemlerin bir kombinasyonu sorunu çözebilir.
Durum kodu 504 için kendi hata sayfanızı nasıl oluşturursunuz?
Apache Webserver
"Apache" web sunucusu internetteki en yaygın web sunucularından biridir. "Apache" de kendi 504 Gateway Timeout hata sayfanızı oluşturmak için aşağıdaki dosyada aşağıdaki değişiklik yapılmalıdır.
NGINX Webserver
"Apache" web sunucusuna benzer şekilde "NGINX" de internette yaygın olarak kullanılmaktadır. "NGINX" de kendi 504 Gateway Timeout hata sayfanızı oluşturmak için aşağıdaki dosyada aşağıdaki değişiklik yapılmalıdır.
location = /504.html {
root /usr/share/nginx/html;
internal;
}
504 durum kodunun tarayıcı uyumluluğu
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 |
Programlama dillerinde sabitler
HttpStatusCode.GatewayTimeout
http.StatusGatewayTimeout
Response::HTTP_GATEWAY_TIMEOUT
httplib.GATEWAY_TIMEOUT
http.client.GATEWAY_TIMEOUT
http.HTTPStatus.GATEWAY_TIMEOUT
:gateway_timeout