Ana içeriğe geç

Rehberler / HTTP durum kodları açıklandı

3xx yönlendirme durum kodları

Bir 3xx durum kodu bir yönlendirmedir: istediğiniz kaynak başka bir yerdedir, ve yanıtın Location başlığı nerede olduğunu söyler. Belirli kod, istemciye ve her arama motoruna, taşımanın kalıcı mı yoksa geçici mi olduğunu ve orijinal istek yönteminin korunması gerekip gerekmediğini söyler.

Bir yönlendirme nasıl çalışır

Bir yönlendirme bir değil iki istektir. İstemci A URL'sini ister, sunucu bir 3xx durumu ve B URL'sini adlandıran bir Location başlığıyla yanıt verir, ve istemci sonra B'ye taze bir istek yapar. Tarayıcılar bunu otomatik olarak takip eder, bu yüzden bir ziyaretçi adres çubuğunda yalnızca son sayfayı ve son URL'yi görür. Ara yanıt hala tam bir gidiş-dönüşe mal olur, ki bu da uzun yönlendirme zincirlerinin yavaş olmasının nedenidir.

İki özellik 3xx kodlarını birbirinden ayırır. İlki kalıcılıktır: kalıcı bir yönlendirme, istemcilere ve tarayıcılara eski URL'nin emekliye ayrıldığını ve yenisinin yer imlerinde, bağlantılarda ve indekslerde onun yerini alması gerektiğini söylerken, geçici bir yönlendirme eski URL'nin hala gerçek olan olduğunu ve geri geleceğini söyler. İkincisi yöntem korunmasıdır. Eski kodlar, bir istemcinin yönlendirmeyi takip ederken bir POST'u bir GET'e çevirmesine izin verir, ve yeniler bunu yasaklar, bu yüzden bir POST bir POST olarak kalır. Bu, bir form gönderiminin yeni URL'ye bozulmadan ulaşması ile boş bir GET olarak ulaşması arasındaki farktır.

Her 3xx kodu ve anlamı

  • 300 Multiple Choices. Kaynak birkaç temsilde vardır ve sunucu istemcinin seçmesine izin veriyordur. Liste için standart, makine tarafından okunabilir bir biçim yoktur, bu yüzden neredeyse hiçbir şey bunu uygulamaz. Pratikte bir 300 ile gerçek dünyada karşılaşmazsınız. Çoğunlukla neden bir arama terimi olarak hayatta kaldığı için 300 Multiple Choices rehberine bakın.
  • 301 Moved Permanently. Kaynağın yeni, kalıcı bir yuvası vardır. Arama motorları sıralama sinyallerini hedefe aktarır, ve istemcilerin yönlendirmeyi, bazen agresif biçimde, önbelleğe almasına izin verilir. Bu, bir alan adı değişikliği, bir HTTP'den HTTPS'e taşıma veya kalıcı bir URL yeniden yapılandırması için kullanılan koddur.
  • 302 Found. Geçici bir yönlendirme. Orijinal URL kimliğini korur, bu yüzden arama motorları normalde hedefi değil orijinali indekslemeye devam eder. Tarihsel olarak birçok istemci, bir 302'yi takip ederken yöntemi GET'e çevirdi, ki bu da standardın burada yöntem korunmasına güvenmemeniz konusunda uyarmasının nedenidir.
  • 303 See Other. "İsteğiniz işlendi; şimdi gidin ve bu başka kaynağı GET yapın." İstemciye, orijinal yöntem ne olursa olsun devam için GET kullanması açıkça söylenir. Bu, bir sonuç sayfasına inmesi gereken bir form POST'una doğru cevaptır.
  • 304 Not Modified. Hiç bir yönlendirme değildir. Koşullu bir isteği yanıtlar ve "önbelleğe alınmış kopyanız hala güncel, onu yeniden kullan" anlamına gelir. Ne gövde ne de Location vardır. Bkz. 304 Not Modified.
  • 305 Use Proxy ve 306 kullanımdan kaldırılmıştır. 305 güvenlik nedenleriyle kullanımdan kaldırıldı ve 306 kullanılmıyor. İkisini de göz ardı edin.
  • 307 Temporary Redirect. 302 ile aynı anlama gelir, ama yöntem ve gövde korunmalıdır. Bir 307'yi takip eden bir POST, yeni URL'ye bir POST olarak ulaşır.
  • 308 Permanent Redirect. 301 ile aynı anlama gelir, ama yöntem ve gövde korunmalıdır.

Yönlendirmelerde neler ters gider

  • Kalıcı bir taşımada geçici bir kod. En yaygın ve en pahalı hata. Arama motorları eski URL'yi indekslenmiş tutar ve yenisi eskisinin konumunu miras almaz.
  • Geçici bir taşımada kalıcı bir kod. Geri almak daha zordur, çünkü önbelleğe alınmış bir 301, kuralı kaldırdıktan çok sonra bile geri dönen ziyaretçileri yanlış yere göndermeye devam edebilir.
  • Yönlendirme zincirleri. http'den https'ye, sonra www olmayandan www'ye, sonra eski yoldan yeni yola, herhangi bir içerik gelmeden önce üç gidiş-dönüştür. Her sıçrama gecikme ekler ve her sıçrama zincirin bozulabileceği bir yerdir.
  • Yönlendirme döngüleri. A, B'ye gönderir ve B, A'ya geri gönderir, genellikle uygulama düzeyinde bir kural ile sunucu düzeyinde veya CDN düzeyinde bir kural kanonik biçim konusunda anlaşamadığı için. Tarayıcılar sabit sayıda sıçramadan sonra pes eder ve bir hata gösterir.
  • Her şey ana sayfaya işaret ediyor. Emekliye ayrılmış sayfalar, en yakın eşdeğerleri yerine hepsi köke yönlendirdiğinde, yönlendirme genellikle yumuşak bir 404 olarak ele alınır ve ziyaretçi arayarak kalır.
  • Kaybolan POST gövdeleri. Bir 301 veya 302'nin arkasına taşınan bir API veya form uç noktası, bazı istemcilerle yöntemini ve yükünü kaybedebilir. Düz bir GET olmayan her şey için 307 veya 308 kullanın.

Yönlendirmelerinizi nasıl denetler ve düzeltirsiniz

  1. Bir URL'nin, takip etmeden ne döndürdüğünü görün:
    curl -sI https://example.com/old-page | grep -Ei "^(HTTP|location)"
    Bu, durum satırını ve hedefi tek seferde yazdırır.
  2. Şimdi tüm zinciri takip edin ve sıçramaları sayın:
    curl -sIL -o /dev/null -w "%{num_redirects} hops, final %{http_code}, %{url_effective}\n" https://example.com/old-page
  3. Zincirleri tek sıçramaya indirin. Orijinal URL'nin ara kurallardan geçmesine izin vermek yerine, onu doğrudan son hedefe işaret edin.
  4. Kodu niyetle eşleştirin. Kalıcı taşıma: 301, veya uç nokta GET dışı istekler kabul ediyorsa 308. Geçici taşıma, bakım sayfası veya A/B ayrımı: 302, veya yöntemin hayatta kalması gerektiği yerde 307. Post-sonra-yönlendir akışı: 303.
  5. Kanonik biçime (protokol, ana bilgisayar ve sondaki eğik çizgi) bir kez karar vererek ve onu tam olarak tek bir katmanda uygulayarak döngüleri düzeltin. Döngüler neredeyse her zaman iki katmanın da yetkili olmaya çalıştığı anlamına gelir.
  6. Soğuk bir önbellekle yeniden test edin. Bir 301'i önbelleğe almış bir tarayıcı ona uymaya devam eder, bu yüzden düzeltmenin işe yaramadığına karar vermeden önce curl veya gizli bir pencereyle doğrulayın.

Trafik düşmeden önce bozuk bir yönlendirmeyi yakalamak

Yönlendirmeler hiçbir görünür belirti olmadan bozulur. Döngüye girmeye başlayan bir kural, veya yönlendirme hedefinde başarısız olan bir sertifika, eski URL'yi hala yanıt verir halde bırakır, bu yüzden trafik ve sıralamalar düşene kadar hiçbir şey yanlış görünmez. Zinciri takip eden ve son durumu iddia eden dış bir kontrol, bozuk bir yönlendirmeyi ortaya çıktığı anda yakalar, ve birçok ağdan kontrol etmek küresel bir kural değişikliğini bölgesel bir CDN sorunundan ayırır. HostTracker, 158 şehirdeki 300'den fazla kontrol noktasından kontroller çalıştırır ve e-posta, SMS, sesli arama, Slack, Telegram ve daha fazlasıyla uyarır. Bir URL'yi ve yönlendirme zincirini HTTP kontrolü aracıyla test edin, ve bir kod seçmeden önce 301 ile 302'yi okuyun.

Ş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ı