F5 dan Ctrl+F5 pencetus dalam pelayar web?
Saya telah melakukan eksperimen dalam IE6 dan Firefox 2.x. Muat semula F5 akan mencetuskan permintaan HTTP kepada pelayan yang mengandungi pengepala If-Modified-Since
, manakala Ctrl+F5 tidak akan mempunyai pengepala sedemikian. Dari pemahaman saya, F5 akan cuba memanfaatkan sebanyak mungkin kandungan cache, manakala Ctrl+F5 bertujuan untuk membuang semua kandungan cache dan hanya mengambil semula semuanya daripada pelayan.
Tetapi hari ini, saya perhatikan bahawa dalam beberapa penyemak imbas terkini (Chrome, IE8) ia tidak lagi berfungsi dengan cara ini. F5 dan Ctrl+F5 kedua-duanya menghantar pengepala If-Modified-Since
.
Jadi, bagaimanakah ini sepatutnya berfungsi, atau (jika tiada standard) bagaimanakah pelayar utama berbeza dalam cara mereka melaksanakan fungsi muat semula ini?
Ia bergantung pada penyemak imbas, tetapi mereka berkelakuan dengan cara yang sama.
F5 Biasanya hanya mengemas kini halaman apabila ia telah diubah suai. Penyemak imbas moden menghantar
Cache-Control: max-age=0
untuk memberitahu masa maksimum (berbanding dengan masa permintaan) bahawa mana-mana sumber cache akan dianggap segar.CTRL-F5 digunakan untuk memaksa kemas kini, mengabaikan sebarang cache. Pelayar moden menghantar
Cache-Control: no-cache
和Pragma: No-cache
Jika saya ingat betul, Netscape ialah penyemak imbas pertama yang menambah sokongan kawalan cache dengan menambahkan apabila menekan CTRL
Pragma: No-cache
- F5.Nota pada Chrome 6.0.472: Jika anda melakukan muat semula paksa (cth. CTRL-F5), ia berkelakuan seolah-olah URL ditandakan secara dalaman seperti sentiasa paksa muat semula. Jika anda pergi ke bar alamat dan tekan Enter, bendera akan dikosongkan.
Secara amnya:
Walaupun kandungan berubah,F5 boleh memberi anda halaman yang sama kerana ia mungkin memuatkan halaman dari cache. Tetapi Ctrl+F5 akan memaksa penyegaran cache dan menjamin anda akan mendapat kandungan baharu jika ia berubah.