HTTPQUERY
Bahasa Indonesia

Clear-Site-Data

Penggunaan

Menerapkan aset yang rusak, merotasi token Authentication, atau mengeluarkan pengguna dari sesi — semuanya menciptakan situasi di mana data basi di sisi klien perlu dibuang. Menuntun pengguna melakukan pembersihan cache secara manual tidaklah andal. Header Clear-Site-Data memberi server cara deklaratif untuk mengusir kategori data tersimpan tertentu dalam satu respons.

Header ini menerima satu atau lebih direktif berupa quoted-string yang menentukan jenis data mana yang akan dibersihkan. Beberapa direktif dipisahkan dengan koma. Wildcard ”*” membersihkan segalanya, termasuk jenis data yang ditambahkan oleh revisi spesifikasi di masa depan.

Header ini hanya bekerja melalui HTTPS. Browser mengabaikan header tersebut pada respons HTTP yang tidak aman. Cakupan “cookies” meluas ke seluruh domain terdaftar dan semua subdomain, artinya respons Clear-Site-Data dari example.re juga membersihkan cookie yang disetel oleh stage.example.re.

Pola penerapan yang umum adalah melampirkan header ini pada endpoint logout. Server merespons permintaan sign-out dengan Clear-Site-Data untuk menghapus cookie Session, sumber daya ter-cache, dan local storage sekaligus. Pola lainnya adalah URL cache-busting khusus yang disajikan sementara setelah penerapan yang buruk, sehingga operator dapat memaksa pengunjung beralih ke aset baru tanpa menunggu cache kedaluwarsa.

Catatan

Mengirim Clear-Site-Data pada setiap respons secara efektif menonaktifkan Caching untuk situs tersebut. Setiap pemuatan halaman mengusir cache browser, sehingga menyebabkan penurunan performa yang terasa. Batasi header ini pada respons yang tersasar seperti endpoint logout, halaman pemulihan kesalahan, atau URL cache-busting sementara.

Catatan

Semua browser utama mendukung header Clear-Site-Data. Safari mendukung semua direktif kecuali “executionContexts” dan menerapkan partisi berbasis origin, sehingga mencegah iframe lintas situs membersihkan data pihak pertama.

”cache”

Membersihkan cache HTTP browser untuk origin tersebut. Implementasi tertentu juga membersihkan cache terkait, termasuk halaman yang telah dirender sebelumnya, entri back-forward cache, cache skrip, cache shader WebGL, dan saran pada bilah alamat.

”cookies”

Membersihkan semua Cookies untuk domain terdaftar dan semua subdomain. Juga membersihkan kredensial HTTP Authentication yang terkait dengan origin tersebut. Cakupannya lebih luas daripada direktif lain karena pencocokan domain cookie mencakup subdomain induk maupun sejajar.

”storage”

Membersihkan DOM storage untuk origin tersebut. Ini mencakup localStorage, sessionStorage, basis data IndexedDB, registrasi Service Worker, basis data Web SQL (usang), data FileSystem API, dan data plugin.

”executionContexts”

Memuat ulang semua konteks penjelajahan untuk origin tersebut. Browser menjalankan padanan dari location.reload() pada setiap tab atau frame terbuka yang terkait dengan origin tersebut. Direktif ini bersifat eksperimental dan belum diimplementasikan secara luas.

Ekstensi khusus Chromium

Direktif “clientHints”, “prefetchCache”, dan “prerenderCache” adalah ekstensi khusus Chromium yang tidak didefinisikan dalam spesifikasi W3C Clear Site Data. Direktif yang didefinisikan oleh spesifikasi adalah “cache”, “cookies”, “storage”, “executionContexts”, dan ”*”. Ekstensi Chromium tersebut hanya bekerja di browser berbasis Chromium dan tidak dikenali oleh Firefox maupun Safari.

”clientHints”

Membersihkan preferensi client hint tersimpan yang disetel melalui header Accept-CH. Ekstensi khusus Chromium. Membersihkan “cache”, “cookies”, atau ”*” juga membersihkan client hints secara otomatis.

”prefetchCache”

Membersihkan cache prefetch Speculation Rules yang tercakup pada origin perujuk. Ekstensi khusus Chromium. Berguna untuk membuang konten hasil prefetch yang basi setelah perubahan status seperti login atau logout. Header dengan direktif ini bekerja pada respons HTTP same-site mana pun.

”prerenderCache”

Membersihkan cache prerender Speculation Rules yang tercakup pada origin perujuk. Ekstensi khusus Chromium. Dipasangkan dengan “prefetchCache” untuk membersihkan semua cache pemuatan spekulatif. Sebuah aplikasi yang dirender di sisi klien dan menarik data dari JavaScript menggunakan “prerenderCache” pada perubahan status untuk membuang halaman yang telah di-prerender sambil tetap mempertahankan HTML hasil prefetch.

”*” (wildcard)

Membersihkan semua jenis data untuk origin tersebut, termasuk jenis direktif apa pun yang ditambahkan ke spesifikasi di masa depan. Pilihan teraman untuk pembersihan menyeluruh, dengan dampak terluas pada pengalaman penjelajahan.

Contoh

Sebuah endpoint logout membersihkan cookie sesi dan storage. Browser menghapus semua cookie untuk domain tersebut (termasuk subdomain), menghilangkan data localStorage dan IndexedDB, serta membuang sumber daya ter-cache.

Clear-Site-Data: "cache", "cookies", "storage"

Pembersihan yang tersasar hanya pada cache setelah penerapan yang buruk. Server melampirkan header ini pada respons untuk sementara waktu hingga pengunjung beralih ke aset baru.

Clear-Site-Data: "cache"

Pembersihan menyeluruh menggunakan wildcard. Semua data ter-cache, cookie, storage, dan jenis data apa pun di masa depan akan dihapus. Umum dipakai pada halaman konfirmasi penghapusan akun.

Clear-Site-Data: "*"

Membersihkan hanya cache pemuatan spekulatif setelah perubahan status. Halaman hasil prefetch dan prerender dari sebelum peristiwa login akan dibuang.

Clear-Site-Data: "prefetchCache", "prerenderCache"