- Katılım
- 21 May 2023
- Mesajlar
- 711
- Tepki
- 17
- Puan
- 18
Site dün akşam açılıyordu, bu sabah beyaz bir sayfada "503" yazısı var. Ne alan adı düşmüş ne de sertifika bitmiş; sunucu ayakta ve yanıt veriyor, yalnız verdiği yanıt "şu an olmaz" anlamına geliyor.
Bu yazıda kodun standarttaki karşılığını, sunucunun onu hangi durumlarda seçtiğini, bekleme süresini taşıyan başlığı ve sık karıştırılan 429 ile 504'ten farkını ele alıyoruz. Dayanak, HTTP semantiğini tanımlayan metin ile MDN'in durum kodu başvurusu.
Kodun standarttaki karşılığı
RFC 9110 bu kodu şöyle tarif ediyor: sunucu, geçici bir aşırı yüklenme ya da planlı bakım nedeniyle isteği şu anda karşılayamıyor ve bu durumun bir süre sonra düzelmesi bekleniyor.
Tanımın iki yarısı da önemli. "Geçici" olması sorunun kalıcı bir yapılandırma hatası olmadığını, "bir süre sonra düzelmesi beklenen" olması da yanıtın bir tahmin taşıdığını söylüyor.
Ne kadar beklemek gerekiyor?
Aynı metin, sunucunun istemciye ne kadar bekleyeceğini önermek için Retry-After başlığını gönderebileceğini belirtiyor. Standart bunu bir zorunluluk değil, olanak olarak tanımlıyor.
Metnin başlık bölümü daha da nettir: Retry-After bir 503 yanıtıyla gönderildiğinde, hizmetin istemciye ne kadar süreyle kapalı kalmasının beklendiğini bildiriyor. Değer ya bir HTTP tarihi ya da saniye cinsinden bir sayı oluyor.
- Retry-After var: Sunucu tahmini bir süre bildiriyor.
- Retry-After yok: Süre bilgisi yok, yalnız "şu an değil" bilgisi var.
- Bağlantı hiç kurulmuyor: Yanıt bile dönmüyorsa sorun daha alt katmanda.
Her aşırı yüklenme 503 döndürür mü?
Standardın kendi düştüğü not tam da bunu uyarıyor: 503 kodunun var olması, bir sunucunun aşırı yüklendiğinde bu kodu kullanmak zorunda olduğu anlamına gelmiyor. Metne göre bazı sunucular bağlantıyı doğrudan reddedebiliyor.
Bu yüzden "503 görmüyorum, demek ki yük sorunu yok" çıkarımı güvenli değil. Sitenin açılmama biçimini ayırt etmenin yolunu site açılmıyor teşhisi yazımızda adım adım anlatmıştık.
Pratikte hangi durumlar bu kodu üretiyor?
MDN'in 503 başvuru sayfası, sunucunun isteği karşılamaya hazır olmadığını, yaygın nedenlerin bakım ve aşırı yük olduğunu yazıyor. Bakım sırasında yöneticilerin bütün trafiği geçici olarak bir 503 sayfasına yönlendirebildiğini, bunun yazılım güncellemeleri sırasında kendiliğinden de olabildiğini belirtiyor.
Aşırı yük tarafında sayfa somut eşikler sayıyor: bellek, işlemci veya bağlantı havuzu sınırlarına ulaşıldığında bazı sunucu tarafı uygulamalar istekleri 503 ile geri çeviriyor. Sayfa bunun bilinçli bir tercih olduğunu da ekliyor — gelen istekleri düşürmek, kaynakların tükenip daha ağır bir arızaya dönüşmesini engelleyen bir geri basınç oluşturuyor.
Püf nokta' Alıntı:503, sunucunun çöktüğünü değil, kendini korumak için kapıyı kapattığını gösterebilir.
429 ve 504 ile karıştırmayın
MDN, belirli istemcilerin istekleri hız sınırlaması nedeniyle kısıtlanıyorsa doğru yanıtın 429 olduğunu söylüyor. Yani "çok fazla istek attınız" durumu ayrı bir koda sahip.
RFC 9110 ise 504'ü şöyle ayırıyor: sunucu ağ geçidi veya vekil olarak çalışırken, isteği tamamlamak için erişmesi gereken üst kaynaktan zamanında yanıt alamamış. Üçü de "sayfa gelmedi" gibi görünse de işaret ettikleri yer farklı.
Site sahibi ne yapmalı?
Yanıt geçici olduğu için ilk iş, geçiciliğin gerçekten geçici olup olmadığını görmek. Bakım penceresi biliniyorsa beklemek yeterli; bilinmiyorsa yükün nereden geldiğine bakmak gerekiyor.
Ölçüm yaparken tek bir denemeye bakmamak da önemli. Aynı adresin farklı zamanlarda farklı sonuç vermesinin nedenlerini site hız testi yazımızda ele almıştık. Makineyi kaç sitenin paylaştığı da sonucu etkiliyor; paylaşımlı düzenin nasıl kurulduğunu barındırmanın temellerini anlattığımız yazıda görebilirsiniz.
Bakım sayfası nasıl doğru kurulur?
MDN'in sayfası, bu yanıtın geçici durumlar için kullanılması gerektiğini ve mümkünse Retry-After başlığında hizmetin toparlanma süresinin tahminen bildirilmesini söylüyor. Planlı bir bakımda bu süre zaten bilindiği için başlığı doldurmak en kolay olduğu an.
Ziyaretçi tarafında görünen sayfa da bu bilgiyi tekrarlarsa, kullanıcı boş yere sayfayı yenilemek yerine ne zaman döneceğini bilerek ayrılıyor.
Sık Sorulan Sorular
503 hatası nedir?
RFC 9110'un tanımıyla, sunucunun geçici aşırı yük veya planlı bakım nedeniyle isteği şu an karşılayamadığını bildiren yanıt.
Ne kadar sürede düzelir?
Sunucu Retry-After başlığı gönderiyorsa tahmini süreyi orada bildiriyor; standart bu başlığı zorunlu tutmuyor.
503 sunucunun çöktüğü anlamına mı geliyor?
Gelmiyor. Sunucu yanıt verebiliyor; MDN'e göre istekleri geri çevirmek kaynakların tükenmesini önleyen bilinçli bir davranış olabiliyor.
503 ile 504 farkı ne?
504, ağ geçidi veya vekil olarak çalışan sunucunun üst kaynaktan zamanında yanıt alamamasını bildiriyor.
Çok istek attığım için mi 503 alıyorum?
Hız sınırlaması söz konusuysa MDN doğru yanıtın 429 olduğunu belirtiyor.
Özetle
503, sunucunun ayakta olduğu ama isteği şimdilik karşılayamadığı durumu bildiren geçici bir yanıt. Süre bilgisi varsa Retry-After başlığında duruyor, standart bu başlığı zorunlu kılmıyor ve aşırı yüklenen her sunucunun bu kodu döndürmesi de gerekmiyor. Bakım ile aşırı yük arasındaki farkı anlamak, beklemekle müdahale etmek arasındaki kararı belirliyor.
Siteniz 503 döndürdüğünde ziyaretçiye bir süre bildiriyor musunuz?
Güncelleme: 1 Eylül 2026. IETF'in RFC 9110 metni ve MDN'in 503 durum kodu sayfası kontrol edildi.
Dijital Dünyanıza Yön Veren Pusula