Clear-Site-Data 頭
基線 2023 *
新推出
HTTP Clear-Site-Data 響應頭向客戶端傳送訊號,指示其應刪除與請求網站關聯的特定型別(cookies、儲存、快取)的所有瀏覽資料。它允許 Web 開發人員更好地控制瀏覽器為其源儲存的資料。
語法
// Single directive
Clear-Site-Data: "cache"
// Multiple directives (comma separated)
Clear-Site-Data: "cache", "cookies"
// Wild card
Clear-Site-Data: "*"
指令
注意:所有指令都必須符合 帶引號字串語法。不包含雙引號的指令無效。
"cache"-
伺服器發出訊號,指示客戶端應刪除響應 URL 源的本地快取資料(瀏覽器快取,請參閱 HTTP 快取)。根據瀏覽器不同,這可能還會清除預渲染頁面、前進/後退快取、指令碼快取、WebGL 著色器快取或位址列建議等內容。
"clientHints"實驗性-
指示伺服器將刪除為響應 URL 源儲存的所有客戶端提示(透過
Accept-CH請求)。注意:在支援
"clientHints"資料型別的瀏覽器中,當指定"cache"、"cookies"或"*"型別時,客戶端提示也會被清除。因此,只有在未指定這些其他型別的情況下才需要"clientHints"。 -
伺服器發出訊號,指示客戶端應刪除響應 URL 源的所有 cookie。HTTP 認證憑據也會被清除。這會影響整個註冊域,包括子域。因此,
https://example.com和https://stage.example.com的 cookie 都將被清除。 "executionContexts"實驗性-
伺服器發出訊號,指示客戶端應重新載入響應源的所有瀏覽上下文(
Location.reload)。 "prefetchCache"實驗性 非標準-
用於清除作用於 referrer 源的推測規則預取。
"prerenderCache"實驗性 非標準-
用於清除作用於 referrer 源的推測規則預渲染。
"storage"-
伺服器發出訊號,指示客戶端應刪除響應 URL 源的所有 DOM 儲存。這包括以下儲存機制:
- localStorage(執行
localStorage.clear), - sessionStorage(執行
sessionStorage.clear), - IndexedDB(對於每個資料庫執行
IDBFactory.deleteDatabase), - Service worker 註冊(對於每個 service worker 註冊,執行
ServiceWorkerRegistration.unregister), - Web SQL 資料庫(已棄用),
- FileSystem API 資料,
- 外掛資料(透過
NPP_ClearSiteData清除 Flash 資料)。
- localStorage(執行
"*"(萬用字元)-
伺服器發出訊號,指示客戶端應清除響應源的所有型別資料。如果此頭未來版本中新增更多資料型別,它們也將被此萬用字元覆蓋。
示例
退出網站
如果使用者退出您的網站或服務,您可能希望刪除本地儲存的資料,包括為推測導航預取或預渲染的任何內容。為此,請將 Clear-Site-Data 頭新增到確認成功退出網站的頁面(例如,https://example.com/logout)。
Clear-Site-Data: "cache", "cookies", "storage", "executionContexts", "prefetchCache", "prerenderCache"
清除 cookie
如果此頭隨 https://example.com/clear-cookies 的響應一起交付,則同一域 https://example.com 和任何子域(如 https://stage.example.com 等)上的所有 cookie 都將被清除。
Clear-Site-Data: "cookies"
清除推測
如果此頭隨 https://example.com/change-state.json 的響應一起交付,則同一域 https://example.com 和任何子域(如 https://stage.example.com)上的所有推測導航預渲染都將被清除。
Clear-Site-Data: "prerenderCache"
要同時清除預取和預渲染推測,必須同時傳送 prefetchCache 和 prerenderCache。
Clear-Site-Data: "prefetchCache", "prerenderCache"
在某些情況下,清除其中一個、另一個或兩者都是合適的。
例如,一個從 JavaScript 中獲取資料的客戶端渲染應用程式可能會在狀態更改時使用 prerenderCache 來丟棄預渲染頁面,但保留預取的 HTML 以在頁面渲染(或再次預渲染)時使用。
另一方面,如果預取的 HTML 文件包含過期資料,但相應的預渲染頁面設定為在顯示時重新整理資料,則您可能不需要使用 prerenderCache,但您可能希望使用 prefetchCache 指令:這樣過期的 HTML 就不會在未來的預渲染中使用。
最後,如果預取的 HTML 文件包含過期資料,並且在預渲染頁面上也不會重新整理過期內容,那麼同時指定 prefetchCache 和 prerenderCache 是最合適的。
規範
| 規範 |
|---|
| 清除站點資料 # 頭 |
瀏覽器相容性
載入中…