Page Cache Collision Shield: Kompatibilitas LiteSpeed, WP Rocket & Nginx
Page Cache Collision Shield WDP Link Post Collision Shield** bekerja dengan menyuntikkan header HTTP
Vary: Host, Cookiedan secara otomatis memicu konstantaDONOTCACHEPAGEsetiap kali parameter nama tamu (seperti?to=) terdeteksi di URL. Hasilnya, plugin cache server seperti LiteSpeed Cache, WP Rocket, dan FastCGI Nginx tidak akan pernah menyajikan file cache tamu A ke tamu B yang berbeda.
Bahaya Tertukarnya Data Tamu Akibat Cache Halaman Statis
Plugin page cache (seperti LiteSpeed Cache, WP Rocket, W3 Total Cache, atau modul Nginx FastCGI) bertugas mengubah halaman dinamis WordPress menjadi file HTML statis demi mempercepat waktu akses situs.
Namun pada website undangan pernikahan, fitur caching ini membawa bahaya besar jika tidak dikonfigurasi dengan tepat:
- Tamu A membuka:
https://andy-zhea.com/?to=Bapak+Joko - Mesin cache server membuat salinan file HTML statis dengan nama "Bapak Joko" dan menyimpannya di disk penyimpanan server.
- Beberapa saat kemudian, Tamu B membuka:
https://andy-zhea.com/?to=Ibu+Siti - Server cache yang tidak menyadari perbedaan parameter langsung menyajikan salinan HTML statis milik Tamu A!
Keresahan Pasangan Pengantin terhadap Kesalahan Tampilan Nama
Dampak dari fenomena cache collision ini sangat merusak:
- Tamu B yang terhormat melihat layar undangan bertuliskan: "Kepada Yth. Bapak Joko".
- Tamu merasa tersinggung karena mengira pengantin salah mengirimkan tautan undangan atau tidak teliti.
- Pengantin panik dan melampiaskan kekecewaan kepada vendor di tengah persiapan pernikahan yang padat.
- Vendor terpaksa mematikan seluruh cache server, yang mengakibatkan performa website melambat drastis saat ratusan tamu mengakses link secara bersamaan.
Mekanisme Isolasi Cache Berbasis Host dan Parameter Kueri
WDP Link Post mengintegrasikan mekanisme pengamanan cache cerdas tanpa mengharuskan Anda mematikan plugin cache berkecepatan tinggi Anda.
Komponen Pengamanan Cache WDP Link Post
- Host-Based Cache Key Partitioning:
WDP Link Post menyuntikkan header Vary: Host ke seluruh respon HTTP. Mesin cache memisahkan ruang penyimpanan (cache bucket) per domain unik, mencegah aset domain A bercampur dengan domain B.
- Selective Dynamic Bypass (
DONOTCACHEPAGE):
Ketika sistem mendeteksi keberadaan query parameter nama tamu pada permintaan:
add_action('init', function() {
if (!empty($_GET['to']) || !empty($_GET['u'])) {
if (!defined('DONOTCACHEPAGE')) {
define('DONOTCACHEPAGE', true);
}
header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0');
header('Pragma: no-cache');
}
});
- LiteSpeed Cache Tag Integration:
Bagi pengguna web server LiteSpeed, WDP Link Post menyuplai header kontrol resmi:
X-LiteSpeed-Cache-Control: no-cache
- Static Asset Caching Tetap Berjalan:
Meskipun dokumen HTML undangan diproses secara dinamis demi menjaga ketepatan nama tamu, seluruh file aset berat (CSS Elementor, font, icon, dan gambar foto) tetap diizinkan ter-cache penuh di peramban tamu dengan masa kedaluwarsa panjang (long-lived browser cache).
Pengujian Nyata: Skenario Tamu Andy & Zhea
Vendor melakukan uji beban (load test) pada website pernikahan Andy & Zhea:
- Skenario 1: 50 tamu mengakses URL umum
https://andy-zhea.comsecara serentak. - Hasil: Dilayani 100% dari cache disk LiteSpeed (kecepatan respon 18 milidetik).
- Skenario 2: Tamu A membuka
?to=Keluarga+Bapak+Hasan. - Hasil: Header bypass aktif, nama Bapak Hasan tampil akurat.
- Skenario 3: Tamu B membuka
?to=Ibu+Ratna. - Hasil: Server menyajikan nama Ibu Ratna secara presisi tanpa ada sisa data Bapak Hasan.
Matriks Rekomendasi Pengaturan Plugin Cache Populer
| Plugin Cache | Pengaturan Rekomendasi di Dashboard Plugin |
|---|---|
| LiteSpeed Cache | Aktifkan opsi Cache Query String dengan memasukkan to dan u ke daftar pengecualian (Do Not Cache Query Strings) |
| WP Rocket | Masukkan to dan u pada tab Advanced Rules bagian Never Cache URL(s) |
| W3 Total Cache | Tambahkan to pada kolom Ignored query stems di menu Page Cache |
| Cloudflare Edge | Atur Caching Level ke Standard dan jangan aktifkan aturan Cache Everything pada halaman undangan |