Firefox 5 'önbelleğe alma' 301 yönlendirmeleri


92

Bu 'özelliği' devre dışı bırakmanın bir yolu var mı?

Örneğin http://localhost/foo.html, kök adrese '301' olarak belirttiğim bir istekte foo.htmlbulunulursa, web sunucusunu tamamen atlamak için sonraki tüm istekler ve ffox 5 önbelleğini kontrol eder, bu url'nin daha önce '301' olduğunu okuyun ve bir değişiklik bile kontrol etmeden yeniden yönlendirin.

foo.html301'i durdurduysam , bunun olmasını 'düzeltmek' için firefox'un önbelleğini temizlemeliyim.

Chrome, IE ve Firefox'un önceki sürümleri bunu yapmaz.


Önbelleği silmek bile bu hatayı benim için çözmez (Firefox 17.0.1, Linux).
Konrad Höffner

2
@kirdie "Yakın geçmişi temizle" iletişim kutusunda, zaman aralığını "her şey" olarak ayarladığınızdan emin olun ve "önbellek" onay kutusunu işaretleyin. Seçilen zaman aralığı, yeniden yönlendirilen url'ye yaptığınız ziyaretlerden daha yeniyse, önbellek girişi temizlenmez.
Kelvin

13
@kirdie ve aynı sorunu olan herkes: Ctrl + H ile geçmişe bakın. Ardından siteyi sağ tıklayın ve "bu site için tüm geçmişi sil" seçeneğini (veya benzer bir şeyi) seçin. Bu benim için yaptı.
Lars Nyström

4
@ LarsNyström: Bir web uygulaması geliştirmek ve bununla karşılaştım - öneriniz benim için kusursuz bir şekilde çalıştı. FF20.0'da "Bu siteyi unut" idi
cincodenada

1
301 " kalıcı olarak taşındı " olarak adlandırılmıyor Yalnızca https sunan bir sunucum varsa ve insanlar http kullanarak alan adıma giderse (yeterince kötü, çünkü istek uri'yi gösterecekler), tarayıcının hatırlamasını istiyorum bu kalıcı olarak değil, her zaman kontrol http.

Yanıtlar:


45

301 sadece önbelleğe alınabilir normal bir yanıt kodudur. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2 diyor ki:

This response is cacheable unless indicated otherwise. 

Dolayısıyla, önbelleğe alınmasını istemiyorsanız, sunucunuzun önbellek davranışını kontrol etmek için kullanılan normal başlıklar aracılığıyla aksini belirtmesi gerekir.

Önbelleği manuel olarak da temizleyebilirsiniz .


7
Bunun yerine, varsayılan olarak önbelleğe alınamayan bir 302 kullanmanın daha kolay olacağına inanıyorum.
Frank Farmer

22
@Boris Zbarsky: Soru, 'Önbelleğin ilk etapta yazılmasını nasıl engellerim' yerine 'Önbelleği nasıl temizlerim' değil mi?
Bobby Jack

4
Soru kesinlikle bana "Önbelleği temizlemek zorunda kalmamı nasıl engelleyebilirim" gibi geldi!
Boris Zbarsky

17
Bu berbat çünkü yanlış olduğunu bilseniz bile bir yeniden yönlendirmeyi "kaydırıp yeniden yükleyemezsiniz". Diğer tüm kötü önbelleğe alınmış kaynaklar ayrı ayrı yeniden yüklenebilir, ancak bu lanet yönlendirmeler yapılamaz.
Sam Watkins

1
IIS'den 302 yönlendirmelerini kullanmayı denedim, ancak Firefox'un son sürümleri (ve Chrome ve Edge ve IE) davranışlarına bakarak bunları da önbelleğe alıyor. Özel bir pencere açıp öldürmenin, web sitelerini test etmenin ve tarayıcınızın önbelleğini zehirlemekten kaçınmanın en iyi yolu olduğunu buldum.
dsmtoday

118

Firefox'ta "web geliştirici" araç çubuğu eklentisine sahipseniz. Devre dışı bırak -> önbelleği devre dışı bırak -> her seferinde sayfanın yeni sürümünü kontrol et seçeneğine tıklayabilirsiniz. Ardından URL'yi yeniden yükleyin ve önbelleğinizi yenileyecektir. Böylece önbelleğinizin tamamını temizlemenize gerek kalmaz.

Cptstubing06'nın yorumundan, aşağıdakiler önbelleğin temizlenmesine yardımcı olabilir:

  1. Tip Ctrl+lyeri çubuğunda imleci koymak.
  2. Tip about:configaçmak için yapılandırma ayarlarını .
  3. Tüm uyarıları onaylayın.
  4. Tip browser.cacheardından EnterFiltre ayarlarına.
  5. Çift tıklayın browser.cache.check_doc_frequency.
  6. Dan değeri değiştirin 3için 1.
  7. Tıklayın OK.
  8. Takıntılı bir şekilde önbelleğe alınmış 301 sayfasını yeniden ziyaret edin.
  9. Bittiğinde frekansı 3'e geri sıfırlayın.

Firefox şimdi yeni 301 sayfasına yönlendirmeli ve yeniden yönlendirilen sayfayı artık önbellekten almamalıdır.


4
Bu benim için harika bir çözüm - Zamanın% 99'unda önbelleğe alınmış bir 301 istiyorum , ancak maviye büründüğünde yeniden yönlendirmenin konumunu değiştirmem gerekebilir ve TÜM önbelleğimi temizlemek istemiyorum. Sadece açıklığa kavuşturmak için Firefox Web Developer, eklenti olmayan araçlar altında kendi menüsüyle birlikte gelir . Eklenti de denir Web Developer, ancak Araçlar menünüzde şu adla görünürWeb Developer Extension ve buradan indirilebilir: addons.mozilla.org/en-us/firefox/addon/web-developer .
cptstubing06

5
Lütfen unutmayın - firefox'un yeniden yönlendirilen URL'niz için önbelleğini güncellemesini istiyorsanız, her zaman yeni bir sürümü kontrol etmek için Web Developer Extensionfirefox'un değişiklik davranışını geçici olarak kontrol etmek için kullanabilir ve ardından normal ayarınıza geri döndürebilirsiniz. Bu, Web Develoepr Uzantısı -> Devre Dışı Bırak -> Önbelleği Devre Dışı Bırak -> Sayfanın Yeni Sürümünü Kontrol Et -> Sayfanın Daha Yeni Sürümünü Her Zaman Kontrol Et altında bulunur.
cptstubing06

1
Hangi yöntemi seçerseniz seçin, prosedür, bu ayarı her zaman yeni bir sürümü kontrol edecek şekilde değiştirip, ardından önbelleğe alınmış yönlendirmeye sahip URL'nizi yüklemektir. Daha sonra sunucuya vurur ve bu url için yeni yanıt varsa alır ve önbelleğini yeni yanıtla günceller. Ardından, önbellek denetimi sıklığınızı orijinal değerinize geri ayarlayabilirsiniz (varsayılan değer "Sayfa güncel olmadığında" dır, ancak ben "Oturum başına bir kez" seçeneğini kullanıyorum, böylece bu senaryo şimdi benim müdahalem olmadan ele alınacaktır).
cptstubing06

@ cptstubing06 Bu ipucu için teşekkürler! Keşke bunu bir çözüm olarak göndermiş olsaydın, böylece önbelleğin tamamını temizlemek istemediğinde bunu halletmenin en iyi yolu olarak ek oy verebilirim.
Mercurybullet

Bilginize, DNS over HTTPSbunun beklendiği gibi çalışması için devre dışı bırakmanız gerekebilir .
user2741287

25

Bu sorunu yeni yaşadım ve benim için iki sorundu.

Bu belirli alan adı Cloudflare üzerinden yönlendirildi, bu yüzden onu geliştirme moduna ayarlamak zorunda kaldım. Bence Cloudflare, 301 yönlendirmesini önbelleğe alıyordu, bu nedenle isteği sunucuya göndermek zorunda kalmadı. Açıkçası bu adım sizin için geçerli olmayabilir.

Ardından, Firefox önbelleğimi (sürüm 11) Araçlar -> Seçenekler'e gidip, sağ üstteki Gelişmiş düğmesini tıklayarak, Ağ sekmesini seçerek ve ardından Önbelleğe Alınmış Web İçeriği bölümünün altındaki Şimdi Temizle'yi tıklayarak temizledim. Önbelleğimin zaten 0 olarak ayarlandığını, ancak yeniden yönlendirmenin önbelleğe alınmasını durdurmak için Şimdi Temizle düğmesini tıklamam gerektiğini unutmayın.

Başka birinin bunu doğrulayıp doğrulayamayacağını bilmek isterim.


2
+1. Firefox önbelleğini temizleme ile ilgili notunuz, Firefox'un güncellenmiş bir 301 almadığı belirli bir URL için bunu benim için (web sitesi sahibi olarak değil, kullanıcı / istemci olarak) düzeltti. Teşekkürler.
Jon Schneider

1
Yalnızca önbelleğe alınmış yönlendirmeyi bu Firefox eklentisiyle silebilirsiniz: addons.mozilla.org/en-us/firefox/addon/cacheviewer-continued
Steve

9

Bir aydan fazla bir süredir önbelleğe alınan eski bir yönlendirmeyi ve yeniden başlatmayı yaptıktan sonra Firefox 26'da çalışan bunun için bir çözüm buldum.

  1. Geçmiş menüsünde, Tüm Geçmişi Göster'i seçin.
  2. Aramada, sonuçların bir listesini getirmek için önbelleğe alınmış yönlendirme sorunu olan etki alanını yazın.
  3. Bunlardan birine sağ tıklayın ve "Bu siteyi unut" seçeneğini seçin.

Yalnızca o site için önbelleğe alınmış tüm sayfalar, resimler ve yönlendirmeler önbellekten kaldırılacaktır. Bu, önbelleğinizin geri kalanını temizlemeden geliştirme web siteniz için yeniden yönlendirmeyi temizlemenizi sağlar.

Bir yan not olarak, Firefox'un yönlendirmeleri en fazla birkaç gün önbelleğe alması gerektiğini düşünüyorum. Bunları bir aydan fazla önbelleğe almak, basit bir hatayı büyük bir sorun haline getirebilir.


2
Bu işe yarıyor, ancak "Bu siteyi unut" un aynı zamanda URL geçmişini (otomatik tamamlama için) ve hatta tüm etki alanı için kaydedilmiş şifreleri unutacağını unutmayın. İstediğin şey olmayabilir.
tanius

5

Hızlı bir çözüm, özel bir tarayıcı penceresi kullanmaktır.


Bu benim hızlı çözümüm ve bazen URL'nin sonuna bir soru işareti eklemek işe yarayabilir.
johnsnails

5

Firefox'un son sürümlerinde yerleşik olarak bulunan geliştirici araçlarının bunun için bir çözümü vardır. Öncelikle, geliştirme bölmesi açıkken önbelleğe almayı kapatın:

  • Herhangi bir sayfada F12geliştirici araçlarını getirmek için tıklayın
  • En sağdaki dişli çark simgesi "Araç Kutusu Seçenekleri" ni tıklayın
  • Altında Advanced Settingsseçeneğini işaretleyinDisable Cache (when toolbox is open)

Artık, önbelleğe alınmış bir sayfayı yenilemeye zorlamak istediğinizde, sayfayı F12 dev araç kutusu açıkken yükleyin / yenileyin. Firefox önbelleği atlayacak ve sunucudan yeni veriler alacak.

Bu yöntemi tercih ediyorum çünkü tarayıcının "normal" hata ayıklamayan tarama için nasıl davrandığını değiştirmez ve genel bir ayarı orijinal değerine geri yüklemeyi unutmayı riske atmazsınız.

Firefox 39'da doğrulandı


1
Önbelleğe alınmış yönlendirmelere yardımcı olmaz.
SuperDuck


2

Firefox Sürüm 38.0’da

Menu -> Edit -> Preferences -> Advanced -> Network -> Clear Now

Benim için çalıştı.


1

301 Kalıcı Olarak Taşındı anlamına gelir ve önbelleğe alınabilir, bu yüzden tarayıcı için bunun "doğru" davranış olduğunu düşünüyorum. 303 See Other kullanmalısınız .


5
IE ve Chrome 303 önbelleği ve HTTP özelliği, önbelleğe alınmasına izin verecek şekilde değiştiriliyor. Tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-15 adresindeki taslaklara bakın . Bu nedenle, yeniden yönlendirme önbelleğini önlemenin tek güvenli yolu, açık Önbellek denetimi üstbilgileri ayarlamaktır.
Boris Zbarsky
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.