Web Cache: Pengertian, Cara Kerja, dan Jenisnya

Web cache adalah sekumpulan file yang tersimpan sementara di penyimpanan perangkat Anda untuk mempercepat loading website. Saat Anda mengunjungi website yang pernah Anda buka sebelumnya, kemungkinan besar Anda sedang mengakses salinan berupa web cache dari website tersebut.

Jadi Anda tidak selalu mengunduh data dari web server untuk mengakses website. Terutama untuk jenis web statis yang sering Anda kunjungi. Kedengarannya memang rumit, namun pengertian dan cara kerja web cache sebenarnya sederhana.

Apa itu Web Cache?

Web cache adalah data website yang disimpan sementara di perangkat Anda agar bisa lebih cepat diakses di kemudian hari. Cache meliputi banyak format data seperti script, teks, gambar, dan lain sebagainya.

Tujuan caching website adalah untuk memangkas waktu loading, meningkatkan performa website, dan memuaskan user. Anda bisa membuktikan perbandingannya dengan beberapa langkah berikut:

  1. Bersihkan cache di web browser Anda.
  2. Kunjungi sebuah blog, utamakan konten yang panjang dan mengandung banyak media.
  3. Tutup tab, lalu cobalah untuk mengakses blog yang sama.
  4. Bandingkan waktu loading antara akses pertama (sebelum caching) dengan akses kedua (setelah caching).

Anda pasti mendapatkan waktu loading yang lebih cepat pada percobaan kedua seolah-olah Anda sedang mengakses website tersebut secara offline. Ya, memang pada dasarnya teknik caching adalah menyimpan dan mengakses data website secara offline yang sudah tersimpan di perangkat.

Dibandingkan dengan mengunduh data dari web server, tentu saja mengakses data di penyimpanan perangkat akan jauh lebih cepat. Inilah yang disebut dengan caching.

Cara Kerja Web Cache

Cara kerja web cache

Untuk lebih mudah memahami cara kerja web cache, Anda bisa membandingkannya dengan ilustrasi berikut.

Lily adalah seorang pencari kerja. Setiap harinya, Lily mengirimkan puluhan lamaran pekerjaan melalui email. Untuk mempermudah usahanya, Lily menyimpan sebuah template surat lamaran kerja.

Setiap kali Lily hendak melamar pekerjaan, Lily hanya perlu mengubah informasi di dalam template tersebut seperti tanggal, nama perusahaan, dan posisi yang dilamar. Lily tidak harus menulis surat lamaran pekerjaan dari nol berulang kali sehingga ia bisa melamar ke lebih banyak perusahaan dalam waktu yang sama.

Web cache adalah data yang fungsinya sama dengan template surat lamaran pekerjaan pada ilustrasi di atas. Dengan web cache, Anda tidak perlu mengunduh data yang sama dari web server berulang kali. Anda cukup mengakses data website tersebut yang sudah tersimpan di perangkat Anda dalam bentuk cache.

Dengan begitu, Anda bisa menghemat penggunaan internet dan waktu loading tanpa mengurangi kinerja dan kualitas website yang Anda kunjungi.

Bagaimana jika Website Mengalami Perubahan?

Website yang aktif pasti rutin diperbarui. Baik pembaruan minor seperti isi konten dan media di halaman tertentu, maupun pembaruan mayor mencakup tampilan dan cara kerja website.

Contoh paling mudahnya adalah peta sebaran Covid-19. Data di halaman tersebut terus berubah setiap harinya. Pertanyaannya, bagaimana jika Anda malah mengakses data web cache yang sudah tidak relevan dengan data saat ini?

Misalnya, Anda hari ini mengunjungi peta sebaran Covid-19 yang secara otomatis menyimpan cache di perangkat Anda. Esok hari, Anda membuka halaman itu lagi. Alih-alih mendapatkan data Covid-19 terbaru, Anda justru mendapatkan data hari sebelumnya dari cache yang tentu saja sudah tidak relevan dan akurat.

Tidak dapat dipungkiri bahwa hal semacam ini memang mungkin saja terjadi. Untuk mengatasinya, web developer menggunakan teknik cache control.

Apa itu Cache Control?

Cache control. Sumber: CDNIFY

Cache control adalah header HTTP yang berfungsi untuk menentukan kebijakan cache browser dalam permintaan klien dan respon server. Di dalamnya mencakup bagaimana sumber daya website disimpan dalam bentuk cache, di mana cache akan disimpan, dan berapa usia maksimal cache sebelum kadaluarsa.

Beberapa cache control yang banyak digunakan adalah:

1. Cache-Control: Max-Age

Masa berlaku maksimal cache pada browser dalam satuan detik. Contohnya adalah cache-control: max-age=120, yang berarti bahwa cache memiliki masa kadaluarsa 120 detik. Setelah cache tersimpan selama 120 detik, web browser harus mengirimkan permintaan ulang ke web server untuk mendapatkan data terbaru.

2. Cache-Control: No-Cache

Browser boleh menyimpan respon sebagai cache, tapi harus mengirimkan permintaan validasi ke web server sebelum menggunakannya. Jika web server menyatakan bahwa cache valid, maka browser boleh menggunakannya. Tapi jika web server menganggap cache tidak valid, maka browser harus mengunduh data baru dari web server.

3. Cache-Control: No-Store

Browser tidak diijinkan untuk menyimpan cache dan harus mengirimkan permintaan ke server setiap saat. Control ini biasa digunakan untuk melindungi data sensitif seperti perbankan, kependudukan, perpajakan, dan data privat lainnya.

4. Cache-Control: Public

Sumber daya website bisa disimpan dalam bentuk cache secara bebas.

5. Cache-Control: Private

Cache hanya boleh disimpan di perangkat user. Control jenis ini tidak mengizinkan pihak luar seperti Content Delivery Network (CDN) untuk menyimpan cache.

6. Expires

Menentukan waktu kadaluarsa cache secara spesifik. Contohnya adalah Expires: Sat, 20 May 2022 07:00:00 GMT, yang berarti bahwa cache tersebut akan kadaluarsa pada tanggal 20 Mei 2022 pukul 07.00 GMT. Perlu diingat bahwa browser akan mengabaikan control Expires jika ‘bertabrakan’ dengan control Max-Age. Jadi, Anda sebaiknya memilih salah satu dari kedua control tersebut karena Anda tidak bisa menggunakan keduanya sekaligus.

7. ETag

Control yang mengidentifikasi versi cache dalam format string, contohnya adalah “675af34563dc-tr34”. Setiap kali Anda mengakses website tersebut, browser akan mencocokkan versi cache Anda pada web server. Jika web server mengkonfirmasi bahwa versi cache Anda masih up-to-date, browser akan melanjutkan untuk memuatnya. Tapi jika versi cache Anda sudah tidak relevan, browser akan mengirimkan permintaan baru ke server untuk mendapatkan data dan cache versi terbaru.

8. Vary

Respons harus cocok dengan sumber daya yang di-cache agar dianggap valid. Misalnya, header Vary: Accept-Language, User-Agent, yang berarti bahwa versi cache harus ada untuk setiap kombinasi bahasa dan user-agent.

Dengan menggunakan berbagai tipe cache control di atas, developer dapat memastikan bahwa user selalu mendapatkan data yang akurat dan relevan. Selain penting untuk website peta sebaran Covid-19, mekanisme yang sama juga sangat diperlukan untuk kasus toko online dimana produk dan harganya terus berubah, peta lalu lintas dan kemacetan real-time, aplikasi cuaca, dan masih banyak lagi.

Jenis-jenis Web Cache

Secara umum, web cache terbagi ke dalam dua jenis, yaitu server-side cache dan browser-side cache. Lebih lanjut, server-side cache pun terbagi lagi ke dalam 6 kategori berikut:

  1. Full page cache – menyimpan seluruh data web secara utuh meliputi HTML, gambar, dan file-file lainnya.
  2. DNS cache – menyimpan daftar alamat IP website yang pernah user kunjungi.
  3. CDN cache – layanan CDN yang menyimpan cache di server proxy yang paling dekat dengan lokasi user.
  4. Object cache – menyimpan data website di komputer user (lokal).
  5. Opcode cache – menyimpan file PHP di memory server untuk mempercepat operasi.
  6. Fragment cache – menyimpan bagian tertentu dari website sebagai cache, misalnya widget dan ekstensi.

Sedangkan browser-side cache adalah cache yang disimpan di ruang penyimpanan browser. Jenis data dan mekanisme caching browser-side dapat Anda atur di menu konfigurasi.

Kesimpulannya, web cache adalah teknik menyimpan data web pada akses pertama untuk digunakan lagi di akses selanjutnya guna mempercepat loading website dan menghemat sumber daya, bandwidth, dan waktu untuk mengakses sebuah website.

Leave a Comment