Doğru HTTP Durum Kodu: Sunucunuz Ne Söylüyor?

Yumuşak 404 sorunu, yönlendirme kodları, hata kodlarının doğru kullanımı ve izleme ile ilişkisi. Doğru HTTP Durum Kodu: Sunucunuz Ne Söylüyor? Silinen bir…

Doğru HTTP Durum Kodu: Sunucunuz Ne Söylüyor?
İçindekiler
  1. Kimler Bu Kodu Okuyor?
  2. Yumuşak 404 Sorunu
  3. Yönlendirme Kodları
  4. Hata Kodları
  5. API Tasarımında Kodlar
  6. İzleme ile İlişkisi
  7. Nasıl Kontrol Edilir?
  8. Sonuç
  9. Sıkça Sorulan Sorular (SSS)
  10. Yumuşak 404 nedir, neden sorun?
  11. 401 ile 403 farkı ne?
  12. Kalıcı mı geçici yönlendirme mi kullanmalıyım?
  13. API'de hata kodlarını nasıl kullanmalıyım?

Doğru HTTP Durum Kodu: Sunucunuz Ne Söylüyor?

Silinen bir ürün sayfası "Bu ürün bulunamadı" mesajı gösteriyor ama sunucu başarı kodu döndürüyor. Arama motoru sayfayı geçerli sanıyor, izleme aracınız hata görmüyor ve sorun aylarca fark edilmiyor.

Bu yazı, durum kodlarını doğru kullanmayı ele alıyor.

Kimler Bu Kodu Okuyor?

Durum kodu insan için değil, makineler içindir:

  • Arama motorları. Dizine alma kararı.
  • Tarayıcı önbelleği. Saklama kararı.
  • İzleme sistemleri. Alarm kararı.
  • API istemcileri. Tekrar deneme kararı.
  • Vekil sunucular ve dağıtım ağları.

Dördüncü madde doğrudan davranış değiştirir: bir API istemcisi, sunucu hatası aldığında genellikle tekrar dener; istemci hatası aldığında denemez — yanlış kod göndermek ya gereksiz yük ya da kaybolmuş istek üretir.

Birinci madde ise en görünür sonucu doğurur ve sonraki bölümün konusudur.

Yumuşak 404 Sorunu

En yaygın hata budur:

Durum Doğru kod
Sayfa hiç var olmadı 404
Sayfa vardı, kalıcı silindi 410
Sayfa taşındı 301
Geçici olarak başka yerde 302
Sayfa var ve çalışıyor 200

Hata, olmayan bir sayfa için beşinci satırı döndürmektir: "bulunamadı" yazan ama 200 döndüren bir sayfa, arama motoru için geçerli içerik sayılır ve dizinde kalmaya devam eder.

Sonuç, arama sonuçlarında boş sayfaların görünmesi ve sitenin genel kalite algısının düşmesidir.

İkinci satır ise az bilinen ama değerli bir ayrımdır. Kalıcı silindiğini bildirmek, arama motorunun sayfayı daha hızlı dizinden çıkarmasını sağlar.

Yönlendirme Kodları

Kalıcı ile geçici arasındaki fark önemlidir:

  1. Kalıcı yönlendirme: Değer aktarılır, önbelleklenir.
  2. Geçici yönlendirme: Değer aktarılmaz, her seferinde sorulur.

Yanlış seçim iki yönde de zarar verir: kalıcı bir taşımada geçici kod kullanmak eski adresin değerini yeni adrese aktarmaz; geçici bir durumda kalıcı kod kullanmak ise tarayıcının yönlendirmeyi kalıcı olarak hatırlamasına yol açar.

İkinci durum daha tehlikelidir. Tarayıcı kalıcı yönlendirmeyi önbelleğe alır ve siz sunucuda kuralı kaldırsanız bile o kullanıcı hâlâ yönlendirilir.

Bu yüzden bakım modu gibi geçici durumlarda kalıcı yönlendirme asla kullanılmamalıdır.

Hata Kodları

Kod Anlamı
400 İstek hatalı biçimlendirilmiş
401 Kimlik doğrulaması gerekli
403 Kimlik var ama yetki yok
429 Çok fazla istek
500 Sunucuda beklenmedik hata
503 Geçici olarak hizmet dışı

İkinci ve üçüncü satır sürekli karıştırılır: 401 "kim olduğunuzu bilmiyorum" der ve giriş yapmanızı bekler; 403 ise "kim olduğunuzu biliyorum ama bu size kapalı" demektir.

Giriş yapmış bir kullanıcıya 401 döndürmek, onu gereksiz yere çıkış yapmaya zorlayabilir.

Dördüncü satır API sağlayanlar için önemlidir. Bu kod, istemciye ne zaman tekrar deneyebileceğini de bildiren bir başlıkla birlikte gönderilmelidir.

Altıncı satır bakım için doğru koddur ve önceki yazılarda ele alınan arama motoru davranışını belirler.

API Tasarımında Kodlar

API yanıtlarında ek dikkat gerekir:

  • Her yanıtta 200 döndürmeyin.
  • Hata gövdesi de açıklayıcı olsun.
  • Doğrulama hataları için uygun kod kullanın.
  • Tutarlı olun.

Birinci madde çok yaygın bir tasarım hatasıdır: gövdede "başarısız" yazan ama 200 döndüren bir API, istemcinin hata yakalama mekanizmalarını tamamen devre dışı bırakır — istemci her yanıtı ayrıştırıp içine bakmak zorunda kalır.

Bu yaklaşım, ağ katmanındaki tüm otomatik davranışları da bozar. Tekrar deneme, alarm ve önbellekleme kararları durum koduna bakar.

Dördüncü madde ise kullanılabilirlik meselesidir. Aynı hata türü için farklı uç noktalarda farklı kod döndürmek, istemci geliştiricisini zor durumda bırakır.

İzleme ile İlişkisi

  1. Sunucu hataları alarm üretmeli.
  2. İstemci hataları oran olarak izlenmeli.
  3. Ani artışlar incelenmeli.

İkinci madde ince bir teşhis aracıdır: 404 oranındaki ani bir artış genellikle bozuk bir bağlantı, silinmiş bir kaynak veya yanlış bir yayına alma anlamına gelir.

Bu kodlar tek tek alarm üretmemeli ama oran olarak izlenmelidir. Normalde binde bir olan bir oranın yüzde beşe çıkması ciddi bir sinyaldir.

Birinci madde ise doğrudan müdahale gerektirir. Sunucu hatası, kullanıcının işini yapamadığı anlamına gelir.

Nasıl Kontrol Edilir?

Yöntem Ne gösterir
Komut satırından başlık isteği Tek adres için kesin sonuç
Erişim günlüğü analizi Genel dağılım
Arama konsolu raporları Arama motorunun gördüğü
Tarayıcı geliştirici araçları Gerçek yükleme akışı

Birinci satır en hızlı doğrulamadır ve olmayan bir adresi test etmek için idealdir. Rastgele bir adres isteyip dönen kodu görmek, yumuşak 404 sorununu saniyeler içinde ortaya çıkarır.

Üçüncü satır ise kapsamlı bir tablo verir ve fark etmediğiniz sorunları listeler.

Sunucu erişim günlüklerinizi düzenli incelemek bu kontrolleri kolaylaştırır; sanal sunucu hizmeti üzerinde günlük dosyalarına doğrudan erişebildiğiniz için durum kodu dağılımını kolayca çıkarabilirsiniz.

Sonuç

Durum kodları insanlar için değil makineler içindir ve en yaygın hata yumuşak 404'tür: "bulunamadı" yazan ama 200 döndüren bir sayfa arama motoru için geçerli içerik sayılır ve dizinde kalmaya devam eder. Yönlendirmelerde kalıcı ile geçiciyi karıştırmayın — tarayıcı kalıcı yönlendirmeyi önbelleğe alır ve siz kuralı kaldırsanız bile o kullanıcı hâlâ yönlendirilir. API tasarlıyorsanız her yanıtta 200 döndürmeyin; bu, istemcinin tüm hata yakalama mekanizmalarını devre dışı bırakır.

Sıkça Sorulan Sorular (SSS)

Yumuşak 404 nedir, neden sorun?

Olmayan bir sayfa için "bulunamadı" mesajı gösterip 200 döndürmektir. Arama motoru bunu geçerli içerik sayar ve sayfa dizinde kalır; arama sonuçlarında boş sayfalar görünür ve sitenin kalite algısı düşer. Rastgele bir adres isteyip dönen kodu kontrol ederek saniyeler içinde tespit edebilirsiniz.

401 ile 403 farkı ne?

401 "kim olduğunuzu bilmiyorum" der ve giriş yapmanızı bekler. 403 ise "kim olduğunuzu biliyorum ama bu size kapalı" demektir. Giriş yapmış bir kullanıcıya 401 döndürmek, onu gereksiz yere çıkış yapmaya zorlayabilir.

Kalıcı mı geçici yönlendirme mi kullanmalıyım?

Taşıma kalıcıysa kalıcı kod, geçiciyse geçici kod. Yanlış seçim iki yönde de zarar verir ama tehlikelisi ikincidir: tarayıcı kalıcı yönlendirmeyi önbelleğe alır ve sunucuda kuralı kaldırsanız bile o kullanıcı yönlendirilmeye devam eder. Bakım modunda asla kalıcı kod kullanmayın.

API'de hata kodlarını nasıl kullanmalıyım?

Gerçek durum kodunu döndürün. Gövdede "başarısız" yazan ama 200 döndüren bir API, istemcinin hata yakalama mekanizmalarını devre dışı bırakır ve ağ katmanındaki tekrar deneme, alarm ve önbellekleme kararlarını bozar. Aynı hata türü için tüm uç noktalarda tutarlı olun.