[draft!]
Protokol HTTP (web) memiliki mekanisme cache/caching. Tujuan caching adalah untuk pengiritan bandwidth jaringan, sehingga selain mengirit biayaa juga dapat mempercepat akses. Namun ada kalanya kita tidak menginginkan terjadinya caching. Artikel berikut menjelaskan jenis-jenis caching yang ada dan bagaimana cara "mengalahkan"-nya, jika diperlukan.
Setelah browser merequest sebuah halaman atau gambar atau objek lain, dia akan menyimpan tanggal Last-Modified yang diberikan oleh server, jika ada.
Jika pengguna browser meminta lagi halaman/gambar/objek yang sama beberapa saat kemudian, browser akan mengirimkan request ke server dengan header If-Modified-Since + tanggal yang disimpan tersebut. Tujuannya adalah meminta versi baru pada server 'hanya jika halaman/gambar/objek ybs telah berubah sejak tanggal terakhir direquest'.
Jika Anda menekan refresh/reload di browser (mis: tombol F5 di IE atau tombol Reload di Firefox) browser pun masih akan menggunakan mekanisme If-Modified-Since ini jika versi lama masih tersimpan di cache.
Jika Anda menekan Shift-Reload atau Ctrl-F5, barulah browser benar-benar meminta versi baru dengan mekanisme Cache-Control.
Pada umumnya, aplikasi web tidak akan terpengaruh oleh mekanisme ini, karena respon yang dikirimkan dari aplikasi web tidak akan mengandung header Last-Modified. Yang terpengaruh hanyalah file-file statik (file HTML statik, gambar, dll) yang memiliki tanggal/waktu Last-Modified yaitu dari filesystem.
setting Check newer documents di browser
Jika setting "Check newer documents" browser dimatikan, maka browser bisa saja sama sekali tidak menggunakan mekanisme If-Modified-Since. Dia akan sepenuhnya bergantung dari cache dan tidak mengecek keberadaan versi baru di server.
Untuk mengalahkan caching seperti ini, Anda dapat menggunakan header Cache-Control atau Expires (lihat di bawah).
Mekanisme-mekanisme caching proxy
Antara browser/komputer Anda dengan server situs tujuan yang ingin diakses, seringkali terdapat satu atau lebih server proxy + cache. Kadang server proxy ini sifatnya transparan, artinya Anda tidak harus mengeset setting proxy di browser Anda, tapi Anda akan tetap menggunakan proxy.
XXX
Mengalahkan caching =
menggunakan random extra string pada URL
Satu hal terakhir yang perlu diingat, cache sebetulnya adalah teman kita, caching tidaklah selalu buruk, dan tidak selalu harus "dikalahkan". Lakukan cache-defeating mechanisms hanya jika memang diperlukan.
Referensi