301 ve 302 yönlendirme farkı nedir?
İkisi de sizi başka bir adrese götürür; fark <strong>tarayıcının bu bilgiyi ne kadar sakladığında</strong> ve arama motorunun hangi adresi asıl kabul ettiğindedir. 301 "bu adres kalıcı olarak taşındı, artık yenisini kullan" der ve tarayıcı bunu diske yazar. 302 "şimdilik oraya git ama eskisini unutma" der ve kayıt kalıcı olmaz. Yanlış kodun seçilmesi, kullanıcının aylarca yanlış adrese kilitlenmesine ya da yeni adresin arama sonuçlarına hiç yerleşememesine yol açar.
Güncellendi:
Yönlendirme Aslında Bir Cevaptır
Tarayıcı bir adres istediğinde sunucu ya içeriği gönderir ya da "içerik burada değil, şurada" diyen bir durum kodu döndürür. Bu kod 3 ile başlar ve yanında yeni adresi taşıyan bir başlık gelir. Tarayıcı o başlığı okur, yeni adrese ikinci bir istek yapar ve sonuç adres çubuğunda yeni adres olarak görünür. Tüm işlem milisaniyelerle ölçülür; kullanıcı çoğu zaman iki istek yapıldığını fark etmez.
Kodun sayısı, tarayıcıya bu bilgiyi ne kadar süre saklaması gerektiğini söyler. 301 kalıcıdır: tarayıcı kaydı diske yazar ve bir dahaki sefere sunucuya hiç sormadan doğrudan yeni adrese gider. 302 geçicidir: kayıt tutulmaz, her seferinde eski adres yeniden sorulur ve sunucu her defasında nereye gidileceğini söyler.
Bu ayrımın günlük hayattaki karşılığı şudur: 301 ile yönlendirilmiş bir adresi geri almak istediğinizde, tarayıcı sizi hâlâ eski karara göre yönlendirmeye devam eder. Sunucudaki kural kaldırılmış olsa bile tarayıcının kendi kaydı devrededir ve yalnızca önbellek temizlenerek ya da kaydın süresi dolarak kırılır.
Yönlendirme Kodları ve Anlamları
Beş kod pratikte karşınıza çıkar. Üçüncü sütun, sorunların çoğunun kaynağıdır: tarayıcının kaydı saklayıp saklamadığı.
| Kod | Anlamı | Tarayıcı kaydı saklar mı? | Tipik kullanım |
|---|---|---|---|
| 301 Moved Permanently | Kalıcı taşınma | Evet, diske yazar | Alan adı değişimi, eski sayfanın yenisiyle birleşmesi |
| 302 Found | Geçici yönlendirme | Hayır | Bakım sayfası, dönemsel kampanya, A/B testi |
| 303 See Other | Form sonrası yönlendirme | Hayır | Gönderilen formdan sonuç sayfasına geçiş |
| 307 Temporary Redirect | Geçici, yöntem korunur | Hayır | POST isteğinin GET'e dönüşmemesi gereken durumlar |
| 308 Permanent Redirect | Kalıcı, yöntem korunur | Evet | 301'in yöntem koruyan modern karşılığı |
301 ve 302'nin eski davranışında POST istekleri GET'e dönüşebiliyordu. 307 ve 308 bu belirsizliği kapatmak için tanımlandı; ikisi de isteğin yöntemini değiştirmeden aktarır.
Aynı Senaryo, İki Farklı Sonuç
Bir adres kapatılıp trafiği yenisine taşınıyor. Aşağıdaki satırlar, aynı taşımanın 301 ve 302 ile nasıl farklı sonuçlandığını gösterir.
| Durum | 301 ile | 302 ile |
|---|---|---|
| İkinci ziyarette ne olur | Tarayıcı sunucuya sormadan yeni adrese gider | Eski adres yeniden sorulur, sunucu tekrar yönlendirir |
| Arama motoru hangi adresi dizinde tutar | Zamanla yeni adres; eski adresin sinyalleri yeniye aktarılır | Genellikle eski adres; yeni adres geçici sayılır |
| Yönlendirme geri alınırsa | Tarayıcı eski kararı uygulamaya devam eder, önbellek temizliği gerekir | Bir sonraki istekte anında normale döner |
| Yer imi davranışı | Kayıtlı eski yer imi çalışır ama her seferinde yeniye taşır | Aynı; ancak sunucu kuralı kalkarsa yer imi eski hedefe döner |
| Yanlış kullanıldığında bedeli | Geçici bir durum kalıcı yazılmışsa geri dönüş zordur | Kalıcı bir taşıma geçici yazılmışsa yeni adres bir türlü yerleşmez |
Pratik kural: geri dönme ihtimali varsa 302, yoksa 301. Yanlış tarafta hata yapmanın maliyeti asimetriktir — 302 yazıp sonra 301'e geçmek kolaydır, tersi değildir.
Bir Adresin Hangi Kodla Yönlendirildiğini Görmek
Adres çubuğu yalnızca sonucu gösterir, yolu göstermez. Kodu görmek için tarayıcının kendi araçları yeterlidir; ek program gerekmez.
Geliştirici araçlarını açın
Sayfada F12 tuşuna basın ve "Ağ" (Network) sekmesine geçin. Panel açıkken sayfayı yenileyin; ilk satır, adres çubuğuna yazdığınız adrestir.
"Yönlendirmeleri koru" seçeneğini işaretleyin
Panelde bu seçenek kapalıysa yönlendirme satırları listeden kaybolur ve yalnızca son adres görünür. İşaretlendiğinde zincirin her adımı ayrı satır olarak listelenir.
Durum sütununu okuyun
İlk satırın durumu 301 ise kalıcı, 302 ya da 307 ise geçici bir yönlendirmedir. Aynı listede birden fazla 3xx satırı varsa zincir uzundur ve her halka ek gecikme demektir.
Location başlığına bakın
Satıra tıklayıp yanıt başlıklarını açın. "Location" satırı, sunucunun sizi tam olarak nereye gönderdiğini yazar. Görünen hedef beklediğinizden farklıysa zincirde araya giren bir katman vardır.
Önbellek etkisini gizli pencerede sınayın
301 kaydı tarayıcıya yazıldığı için normal pencerede sunucu kuralını değiştirseniz bile eski davranışı görürsünüz. Gizli pencere temiz bir önbellekle açıldığından, sunucunun şu anda gerçekten ne döndürdüğünü gösterir.
Yönlendirmede Beş Yaygın Hata
Hataların ortak yanı, hepsinin ilk gün fark edilmemesidir; bedeli haftalar sonra ortaya çıkar.
Geçici durumu 301 ile yazmak
Bakım için birkaç saatliğine yapılan bir yönlendirme 301 ile verilirse ziyaretçilerin tarayıcısında kalıcı kayıt oluşur. Bakım bitse de o kullanıcılar aylarca yanlış adrese gitmeye devam eder.
Kalıcı taşımayı 302 ile yazmak
Arama motoru eski adresi asıl kabul etmeye devam eder ve yeni adres sonuçlarda yerleşemez. Taşıma teknik olarak çalışır ama görünürlük eski adreste sıkışıp kalır.
Zinciri uzatmak
A → B → C → D biçiminde her adım ek bir istek ve ek gecikme demektir. Zincirin ortasındaki halkalar kaldırılıp doğrudan A → D kurulmalıdır.
Döngü kurmak
A, B'ye; B de A'ya yönlendirdiğinde tarayıcı belirli sayıda denemeden sonra durur ve "çok fazla yönlendirme" hatası verir. Bu hata neredeyse her zaman iki ayrı kuralın birbirini iptal etmesinden doğar.
Her adresi ana sayfaya toplamak
Kaldırılan bir iç sayfayı ana sayfaya yönlendirmek kullanıcıyı aradığı içerikten uzaklaştırır. Karşılığı yoksa doğru cevap yönlendirme değil, dürüst bir 404'tür.
Sık Sorulan Sorular
301 kalıcı, 302 geçicidir. 301'de tarayıcı kaydı diske yazar ve sonraki ziyaretlerde sunucuya hiç sormadan doğrudan yeni adrese gider; 302'de böyle bir kayıt tutulmaz ve eski adres her seferinde yeniden sorulur. Arama motorları da 301'de sinyalleri yeni adrese aktarır, 302'de eski adresi asıl kabul etmeye devam eder.
Sunucu tarafında evet, kural kaldırılır. Ancak daha önce o adresi ziyaret etmiş kullanıcıların tarayıcısında kayıt durmaya devam eder ve onlar için yönlendirme çalışmayı sürdürür. Kaydın düşmesi için önbelleğin temizlenmesi ya da saklama süresinin dolması gerekir.
Her halka ayrı bir istek ve ayrı bir gecikme üretir; mobil bağlantıda bu fark hissedilir hâle gelir. Ayrıca zincir uzadıkça arama motorlarının sinyal aktarımı zayıflar ve tarayıcılar belirli bir sayının üstünde zinciri tamamen keser.
İki kuralın birbirini işaret ettiği bir döngüye girildiğini gösterir. Tarayıcı belirli bir deneme sayısından sonra durur. Bu hata istemci tarafında çözülemez; kaynak sunucu yapılandırmasındadır.
Yönlendirme sürdüğü sürece çalışır. Ancak yer imi eski adresi tutuyorsa ve o adres bir gün başkasının eline geçerse sizi bambaşka bir yere götürebilir. Güvenli yol, hedefi doğrudan yayınlayan sayfayı kaydetmektir.
Hayır. İkisi de sayfa indirildikten sonra tarayıcı içinde çalışır; sunucu durum kodu döndürmez. Bu yüzden daha yavaştırlar, geri tuşunu bozabilirler ve arama motorları tarafından sunucu yönlendirmesi kadar net yorumlanmazlar. Mümkün olan her yerde sunucu tarafı yönlendirme tercih edilir.
Kalıcılık açısından ikisi de aynıdır. Fark yöntem korumasındadır: 301'de bazı tarayıcılar POST isteğini GET'e çevirebilir, 308 bunu yapmaz. Form gönderimi içeren adreslerde 308 daha güvenli davranır; düz sayfa taşımalarında ikisi arasında gözle görülür bir fark oluşmaz.
İlgili sayfalar
- bahis sitesi adresi neden değişiyorAdres değişimi rastgele değildir; alan adı, DNS ve erişim katmanının nasıl çalıştığıyla ilgilidir. Mekanizma ve adres değişiminde dolandırılmama rehberi.
- dns nedir nasıl çalışırAdres çubuğuna yazdığınız isim IP adresine nasıl çevrilir? Çözümleme zincirinin beş durağı, önbellek katmanları ve TTL süresinin anlamı.