Ana içeriğe geç

Rehberler / HTTP durum kodları açıklandı

4xx Durum Kodları Açıklandı: İstemci Hataları Gerçekte Ne Anlama Gelir

Bir 4xx durum kodu, sunucunun isteği anladığı ama isteğin kendisiyle ilgili bir şey yanlış olduğu için karşılamayacağı anlamına gelir. Tanım gereği hata istemci tarafındadır. Ancak sahip olduğunuz bir sitede, bir 4xx, ziyaretçinin gerçek bir hatasından çok daha sık bozuk bir bağlantı, eski bir yeniden yazma kuralı veya aşırı istekli bir güvenlik duvarıdır.

4xx sınıfı ne söyler

RFC 9110, 4xx sınıfını "İstemci Hatası" olarak tanımlar: sunucu istemcinin hata yaptığına inanır. Bu, var olmayan bir şey için bir isteği, ihtiyaç duyduğu kimlik bilgileri olmayan bir isteği, sunucunun politika gereği reddettiği bir isteği, ve biçimsiz veya çok büyük bir isteği kapsar.

Bunlardan birini hata ayıklarken sınıfın üç özelliği önem taşır:

  • Bir 4xx, gönderildiği haliyle o istek için nihai bir yanıttır. Aynı isteği tekrarlamak normalde aynı kodu üretir.
  • Yanıt gövdesinin insan tarafından okunabilir bir açıklama olması amaçlanmıştır. Özel hata sayfalarının var olmasının ve boş bir 404 sayfasının boşa harcanmış bir fırsat olmasının nedeni budur.
  • Bazı 4xx yanıtları varsayılan olarak önbelleğe alınabilir. RFC 9111, bir önbelleğin sezgisel olarak saklayabileceği kodlar arasında 404, 405, 410 ve 414'ü listeler, bu yüzden yanlış bir 404, ona neden olan hatadan daha uzun ömürlü olabilir.

Karşılaşacağınız 4xx kodları

  • 400 Bad Request: istek biçimsizdir ve sunucu onu ayrıştıramaz. Sıklıkla kötü bir sorgu dizesi, aşırı büyük bir çerez başlığı veya uygulamanın önünde bozuk bir vekil sunucu.
  • 401 Unauthorized: kimlik doğrulama gereklidir ve ya eksik ya da geçersizdir. Sunucu, istemciye nasıl kimlik doğrulayacağını söyleyen bir WWW-Authenticate başlığı göndermelidir.
  • 403 Forbidden: sunucu isteği anladı ve reddediyor. Kimlik bilgileri yardımcı olmaz, çünkü ret bir kimlik doğrulama hatası değil bir politika kararıdır.
  • 404 Not Found: o URL'de mevcut bir temsil yoktur, veya sunucu bir tane olduğunu kabul etmeyecektir. Ayrıntılı olarak 404 rehberinde ele alınmıştır.
  • 405 Method Not Allowed: URL vardır ama o yöntem için değil. Sunucu, kabul ettiği yöntemleri bir Allow başlığında listelemelidir.
  • 408 Request Timeout: istemci isteği göndermek için çok uzun sürdü. Gecikmenin sunucunun arkasında olduğu bir 504'ten farklıdır.
  • 410 Gone: kaynak vardı ve kasıtlı olarak kaldırıldı, ve bunun kalıcı olması beklenir.
  • 413 Content Too Large ve 414 URI Too Long: istek, yapılandırılmış bir sınırı aştı, genellikle bir yükleme sınırı veya bir başlık boyutu sınırı.
  • 429 Too Many Requests: bir hız sınırına ulaşıldı. Bu özellikle izleme kurulumlarını ısırır.

Bir 4xx gerçekte ne zaman bir sunucu yanlış yapılandırmasıdır

"İstemci hatası" etiketi, protokol rolleriyle ilgilidir, suçla ilgili değildir. Sağlıklı bir üretim sitesinde görünen çoğu 4xx kodu, sizin tarafınızdaki bir şeyden kaynaklanır. Artık eşleşmeyen bir yeniden yazma veya yönlendirme kuralı, geçerli URL'leri tüm bir dizin boyunca 404'lere çevirir, ve belirti tek bir URL'de değil, aynı anda birçok URL'de bir 404'tür. Karmalanmış bir varlık yaymayı bırakan bir derleme, dosya düzeyinde aynı şeyi yapar: her sayfa 404 döndüren bir dosya ister, bu yüzden sayfa işlenir ama bozuk görünür.

Güvenlik katmanları geri kalanının büyük bölümünü oluşturur. Bir WAF kuralı, bir bot filtresi veya bir coğrafi engelleme gerçek trafiğe 403 döndürebilir, ve bunlar genellikle ofis IP adresi için geçerli sayıldığından fark edilmesi kolayca atlanır. Bir sayfanın herkese açık olması gerekirken 401 vermesine neden olan bir kimlik doğrulama değişikliği, tamamen sunucunun neden olduğu bir 4xx'tir. Uygulamanın kabul edeceği bir istek için, başlık veya gövde sınırı uygulamanınkinden küçük olan bir ters vekil sunucudan gelen bir 400 veya 413 de öyledir.

Kendi sitenizde bir 4xx nasıl teşhis edilir

  1. Önce tam kodu ve başlıkları okuyun. Genel olabilecek hata sayfasına göre yargılamayın:
    curl -sS -o /dev/null -D - https://example.com/broken-page
    Bu, durum satırını artı Allow, WWW-Authenticate, Retry-After ve varsa herhangi bir sunucu veya CDN tanımlama başlığını gösterir.
  2. Tek bir URL mü yoksa bir örüntü mü olduğuna karar verin. Tek bir URL bir bağlantıya veya silinmiş bir sayfaya işaret eder. Tüm bir yol ön eki, yönlendirmeye, izinlere veya bir dağıtıma işaret eder.
  3. Kimin yanıt verdiğini kontrol edin. CDN uç noktasından gelen yanıtı kaynaktan gelen yanıtla karşılaştırın. Yalnızca uçta var olan bir 403, uygulamanız değil bir WAF veya bot kuralıdır.
  4. Farklı bir istemci kimliği deneyin. Farklı bir kullanıcı aracısı, kimliği doğrulanmamış bir oturum veya farklı bir ağ, kodu 403'ten 200'e çevirebilir; bu da engeli anında yerelleştirir.
  5. O istek için sunucu günlük satırını okuyun. Web sunucusu ve uygulama günlükleri, hangi kuralın veya işleyicinin kodu ürettiğini kaydeder. Genellikle soruşturmayı sona erdiren adım budur.
  6. Düzeltin, ardından önbellekleri temizleyin. Birçok 4xx kodu önbelleğe alınabilir olduğundan, düzeltilmiş bir sayfa, girdi geçersiz kılınana kadar bir CDN veya tarayıcı önbelleğinden eski hatayı sunmaya devam edebilir.

Hiç ziyaret etmediğiniz 4xx sayfalarını bulma

Bir 4xx bir sunucuyu çökertmez, bu yüzden fark edilmeden geçer. Site yüklenir, ana sayfa sorunsuzdur, ve bir bölüm sizin dışınızda herkes için 404 veya 403 döndürür. Zamanlanmış bir HTTP kontrolü, aldığı kodu beklediğiniz kodla karşılaştırır, bu yüzden 200 yerine 403 vermeye başlayan bir sayfa, bir destek talebini beklemek yerine bir uyarı yükseltir. Kontrolün nereden çalıştığı da önemlidir. HostTracker 158 şehirdeki 300'den fazla kontrol noktasından kontrol eder, bu yüzden bir coğrafi engelleme veya bölgesel bir WAF kuralı, bir gizem yerine konumlar arasında gerçek bir fark olarak görünür. Başarısız olan kod bunun yerine 500, 502 veya 503 ise, neden sunucu tarafındadır ve başlanacak yer 5xx ailesi rehberidir.

Şimdi kontrol edin

Ücretsiz kontrolü kendi sitenizde çalıştırın - hesap gerekmez.

HTTP check

Bunu sürekli izleyin

Bir sorun çıktığı anda haberdar olun: HostTracker 300’den fazla konumdan kontrol eder ve size e-posta, SMS, Slack, Telegram ve daha fazlasıyla bildirim gönderir.

HostTracker özellikleri

Bu bölümde daha fazlası: HTTP durum kodları açıklandı