Pengalihan 301 Firefox 5 'caching'

92

Apakah ada cara untuk menonaktifkan 'fitur' ini?

Misalnya, jika ada permintaan http://localhost/foo.htmlyang saya tentukan ke '301' ke alamat root, semua permintaan berikutnya untuk foo.htmlmelewati server web sepenuhnya dan ffox 5 akan memeriksa temboloknya, baca bahwa url ini sebelumnya '301' dan mengarahkan ulang tanpa memeriksa perubahan.

Jika saya berhenti foo.htmldari 301'ing, saya harus menghapus cache firefox untuk 'memperbaiki' ini terjadi.

Chrome, IE, dan Firefox versi sebelumnya tidak melakukan ini.

maks
sumber
Bahkan menghapus cache tidak menyelesaikan kesalahan ini untuk saya (Firefox 17.0.1, Linux).
Konrad Höffner
2
@kirdie Dalam dialog "hapus riwayat terkini", pastikan Anda menyetel rentang waktu ke "semuanya", dan centang kotak "cache". Jika rentang waktu yang dipilih lebih baru daripada kunjungan Anda ke url yang diarahkan ulang, entri cache tidak akan dihapus.
Kelvin
13
@kirdie dan semua orang dengan masalah yang sama: Lihat riwayat dengan Ctrl + H. Kemudian klik kanan situs dan pilih "hapus semua riwayat untuk situs ini" (atau yang serupa). Itu berhasil untuk saya.
Lars Nyström
4
@ LarsNyström: Mengembangkan aplikasi web dan menjalankannya - saran Anda bekerja dengan sempurna untuk saya. Itu adalah "Lupakan situs ini" di FF20.0
cincodenada
1
Bukankah 301 disebut "dipindahkan secara permanen " Jika saya memiliki server yang hanya melayani https dan orang-orang membuka nama domain saya menggunakan http (cukup buruk, karena mereka akan mengungkapkan permintaan uri), saya ingin browser mengingatnya yang secara permanen dan tidak memeriksa http setiap waktu.

Jawaban:

45

301 hanyalah kode respons normal yang dapat disimpan di cache. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2 mengatakan:

This response is cacheable unless indicated otherwise. 

Jadi, jika Anda tidak ingin cache disimpan, server Anda perlu menunjukkan sebaliknya melalui header normal yang digunakan untuk mengontrol perilaku cache.

Anda juga dapat menghapus cache secara manual .

Boris Zbarsky
sumber
7
Saya yakin akan lebih mudah menggunakan 302, yang secara default tidak dapat di-cache.
Frank Farmer
22
@ Boris Zbarsky: Bukankah pertanyaannya lebih kepada 'Bagaimana cara menghapus cache' daripada 'Bagaimana cara mencegah penulisan cache terjadi di tempat pertama'?
Bobby Jack
4
Pertanyaannya pasti tampak seperti "Bagaimana cara menjaga diri saya dari keharusan mengosongkan cache" bagi saya!
Boris Zbarsky
17
Ini menyebalkan karena Anda tidak dapat "menggeser-ulang" pengalihan meskipun Anda tahu itu salah. Setiap sumber daya cache buruk lainnya dapat dimuat ulang secara terpisah, tetapi bukan pengalihan sialan ini.
Sam Watkins
1
Saya mencoba menggunakan 302 pengalihan dari IIS, tetapi versi terbaru Firefox (dan Chrome dan Edge dan IE) menyimpan cache juga, dilihat dari perilakunya. Saya menemukan bahwa membuka dan menutup jendela Pribadi adalah cara terbaik untuk menguji situs web dan menghindari keracunan cache browser Anda.
dsmtoday
117

Di Firefox jika Anda memiliki addon bilah alat "pengembang web". Anda dapat mengklik nonaktifkan -> nonaktifkan cache -> periksa versi baru halaman setiap saat. Kemudian muat ulang URL dan itu akan menyegarkan cache Anda. Jadi, Anda tidak perlu menghapus cache lengkap Anda.

Dari komentar cptstubing06, berikut ini dapat membantu membersihkan cache:

  1. Ketik Ctrl+luntuk meletakkan kursor di bilah lokasi.
  2. Ketik about:configuntuk membuka pengaturan konfigurasi .
  3. Konfirmasikan peringatan apa pun.
  4. Ketik browser.cachediikuti dengan Enteruntuk memfilter pengaturan.
  5. Klik dua kali browser.cache.check_doc_frequency.
  6. Ubah nilainya dari 3menjadi 1.
  7. Klik OK.
  8. Kunjungi kembali halaman 301 yang disimpan dalam cache secara obsesif.
  9. Setel ulang frekuensi kembali ke 3 setelah selesai.

Firefox sekarang harus mengalihkan ke halaman baru 301, tidak lagi mengambil halaman yang dialihkan dari cache.

Steve Paroki
sumber
4
Ini adalah solusi yang bagus untuk saya - Saya ingin cache 301 99% dari waktu, tetapi sekali dengan warna biru saya mungkin perlu mengubah lokasi pengalihan, dan tidak ingin menghapus SELURUH cache saya. Hanya untuk memperjelas, Firefox hadir dengan Web Developermenu sendiri di bawah alat, yang bukan addon. Addon ini juga disebut Web Developer, tetapi muncul di menu Alat Anda Web Developer Extensiondan dapat diunduh di sini: addons.mozilla.org/en-us/firefox/addon/web-developer .
cptstubing06
5
Harap diperhatikan - jika Anda ingin firefox memperbarui cache-nya untuk URL yang diarahkan ulang, Anda dapat menggunakan Web Developer Extensionuntuk mengontrol perilaku perubahan firefox sementara untuk selalu memeriksa versi baru, kemudian mengaturnya kembali ke pengaturan normal Anda. Ini ada di bawah Ekstensi Web Develoepr -> Nonaktifkan -> Nonaktifkan Cache -> Periksa Versi Halaman Yang Lebih Baru -> Periksa Versi Halaman Yang Lebih Baru Setiap Saat.
cptstubing06
1
Metode apa pun yang Anda pilih, prosedurnya adalah mengubah pengaturan ini untuk selalu memeriksa versi baru, lalu memuat URL Anda yang memiliki pengalihan cache. Ini kemudian akan masuk ke server dan mendapatkan respons baru apa pun yang ada untuk url itu dan memperbarui cache-nya dengan respons baru. Kemudian, Anda dapat menyetel frekuensi pemeriksaan cache kembali ke nilai asli Anda (defaultnya adalah "Saat halaman kedaluwarsa", tetapi saya akan menggunakan "Sekali per sesi" sehingga skenario yang tepat ini akan ditangani tanpa keterlibatan saya sekarang).
cptstubing06
@ cptstubing06 terima kasih atas tip itu! berharap Anda telah mengirimkannya sebagai solusi sehingga saya dapat memberi suara positif sebagai cara terbaik untuk menangani ini ketika Anda tidak ingin menghapus seluruh cache Anda.
Mercurybullet
FYI Anda mungkin harus menonaktifkan DNS over HTTPSagar ini berfungsi seperti yang diharapkan.
pengguna2741287
25

Saya baru saja mengalami masalah ini, dan bagi saya itu adalah dua masalah.

Nama domain khusus ini dirutekan melalui Cloudflare, jadi saya harus mengaturnya ke mode pengembangan. Saya pikir Cloudflare sedang menyimpan pengalihan 301 sehingga tidak perlu mengirim permintaan ke server. Langkah ini mungkin tidak berlaku untuk Anda dengan jelas.

Kemudian, saya cukup mengosongkan tembolok Firefox saya (versi 11) dengan membuka Alat -> Opsi, mengklik tombol Lanjutan di kanan atas, memilih tab Jaringan, lalu mengklik Bersihkan Sekarang di bawah bagian Konten Web Cache. Perhatikan bahwa cache saya sudah disetel ke 0, tetapi saya masih perlu mengklik tombol Bersihkan Sekarang untuk mendapatkan pengalihan agar berhenti di-cache.

Saya tertarik untuk mengetahui apakah ada orang lain yang dapat memverifikasi ini.

Charlie Gorichanaz
sumber
2
+1. Catatan Anda tentang mengosongkan tembolok Firefox telah memperbaiki hal ini untuk saya (sebagai pengguna / klien, bukan pemilik situs web) untuk URL tertentu di mana Firefox tidak mengambil 301 yang telah diperbarui. Terima kasih.
Jon Schneider
1
Anda dapat menghapus hanya pengalihan yang di-cache dengan plugin Firefox ini: addons.mozilla.org/en-us/firefox/addon/cacheviewer-continued
Steve
9

Saya telah menemukan solusi untuk ini yang berfungsi di Firefox 26, setelah pengalihan yang lama disimpan dalam cache selama lebih dari sebulan dan restart.

  1. Pada menu History, pilih Show All History.
  2. Dalam pencarian, ketik domain dengan masalah pengalihan cache untuk memunculkan daftar hasil.
  3. Klik kanan salah satunya dan pilih "Lupakan situs ini".

Semua halaman cache, gambar dan pengalihan hanya untuk situs itu akan dihapus dari cache. Ini memungkinkan Anda menghapus pengalihan untuk situs web pengembangan Anda tanpa menghapus sisa cache Anda.

Sebagai catatan tambahan, menurut saya Firefox seharusnya hanya melakukan pengalihan cache paling lama beberapa hari. Menyimpannya selama lebih dari sebulan dapat membuat kesalahan sederhana menjadi masalah besar.

Malvineous
sumber
2
Ini berfungsi, tetapi perhatikan bahwa "Lupakan situs ini" juga akan melupakan riwayat URL (untuk pelengkapan otomatis) dan bahkan sandi yang disimpan untuk seluruh domain. Mungkin bukan yang Anda inginkan.
tanius
5

Salah satu perbaikan cepat adalah menggunakan jendela browser pribadi.

Costa
sumber
Itu adalah perbaikan cepat saya, dan terkadang hanya menambahkan tanda tanya di akhir URL sudah cukup.
johnsnails
5

Alat pengembang yang dibangun ke dalam versi terbaru Firefox memiliki solusi untuk ini. Pertama, matikan caching ketika panel dev terbuka:

  • Di halaman mana saja, tekan F12untuk memunculkan alat pengembang
  • Di paling kanan, klik ikon roda gigi "Opsi Kotak Alat"
  • Di bawah Advanced Settingscentang opsiDisable Cache (when toolbox is open)

Sekarang kapan pun Anda ingin memaksa menyegarkan halaman yang di-cache, muat / segarkan halaman dengan kotak alat pengembang F12 terbuka. Firefox akan melewati cache dan mendapatkan data baru dari server.

Saya lebih suka metode ini karena tidak mengubah cara peramban berperilaku untuk penjelajahan non-debug "normal", dan Anda tidak berisiko lupa memulihkan setelan global ke nilai aslinya.

Diverifikasi di Firefox 39

Ryan Bemrose
sumber
1
Itu tidak membantu pengalihan cache.
SuperDuck
3

A 301 menunjukkan pindah secara permanen. Oleh karena itu saya melihat masuk akal untuk menyimpan respon.

Sudahkah Anda mencoba menyetel cache-controldan expiresheader?

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

Chris Diver
sumber
3
Kadang-kadang kami mengembangkan, atau memigrasi server, atau melacak kesalahan, dan benar-benar perlu menonaktifkannya karena hal itu benar-benar dapat menghalangi.
Jason
2

Di Firefox Versi 38.0

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

Bekerja untuk saya.

Soorajlal KG
sumber
1

301 berarti Dipindahkan Secara Permanen dan dapat disimpan dalam cache, jadi menurut saya itu adalah perilaku yang "benar" untuk browser. Anda harus menggunakan 303 Lihat Lainnya .

jsz
sumber
5
IE dan Chrome cache 303 dan spesifikasi HTTP sedang diubah untuk memungkinkan cache-nya. Lihat drafnya di tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-15 . Jadi, satu-satunya cara aman untuk mencegah redirect caching adalah dengan menyetel header Cache-control eksplisit.
Boris Zbarsky