Clear-Site-Data 頭

基線 2023 *
新推出

自 2023 年 9 月起,此功能可在最新的裝置和瀏覽器版本上使用。此功能可能無法在較舊的裝置或瀏覽器上使用。

* 此特性的某些部分可能存在不同級別的支援。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

HTTP Clear-Site-Data 響應頭向客戶端傳送訊號,指示其應刪除與請求網站關聯的特定型別(cookies、儲存、快取)的所有瀏覽資料。它允許 Web 開發人員更好地控制瀏覽器為其源儲存的資料。

頭型別 響應頭
禁止請求頭

語法

http
// 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"

"cookies"

伺服器發出訊號,指示客戶端應刪除響應 URL 源的所有 cookie。HTTP 認證憑據也會被清除。這會影響整個註冊域,包括子域。因此,https://example.comhttps://stage.example.com 的 cookie 都將被清除。

"executionContexts" 實驗性

伺服器發出訊號,指示客戶端應重新載入響應源的所有瀏覽上下文(Location.reload)。

"prefetchCache" 實驗性 非標準

用於清除作用於 referrer 源的推測規則預取。

"prerenderCache" 實驗性 非標準

用於清除作用於 referrer 源的推測規則預渲染。

"storage"

伺服器發出訊號,指示客戶端應刪除響應 URL 源的所有 DOM 儲存。這包括以下儲存機制:

"*"(萬用字元)

伺服器發出訊號,指示客戶端應清除響應源的所有型別資料。如果此頭未來版本中新增更多資料型別,它們也將被此萬用字元覆蓋。

示例

退出網站

如果使用者退出您的網站或服務,您可能希望刪除本地儲存的資料,包括為推測導航預取或預渲染的任何內容。為此,請將 Clear-Site-Data 頭新增到確認成功退出網站的頁面(例如,https://example.com/logout)。

http
Clear-Site-Data: "cache", "cookies", "storage", "executionContexts", "prefetchCache", "prerenderCache"

清除 cookie

如果此頭隨 https://example.com/clear-cookies 的響應一起交付,則同一域 https://example.com 和任何子域(如 https://stage.example.com 等)上的所有 cookie 都將被清除。

http
Clear-Site-Data: "cookies"

清除推測

如果此頭隨 https://example.com/change-state.json 的響應一起交付,則同一域 https://example.com 和任何子域(如 https://stage.example.com)上的所有推測導航預渲染都將被清除。

http
Clear-Site-Data: "prerenderCache"

要同時清除預取和預渲染推測,必須同時傳送 prefetchCacheprerenderCache

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

在某些情況下,清除其中一個、另一個或兩者都是合適的。

例如,一個從 JavaScript 中獲取資料的客戶端渲染應用程式可能會在狀態更改時使用 prerenderCache 來丟棄預渲染頁面,但保留預取的 HTML 以在頁面渲染(或再次預渲染)時使用。

另一方面,如果預取的 HTML 文件包含過期資料,但相應的預渲染頁面設定為在顯示時重新整理資料,則您可能不需要使用 prerenderCache,但您可能希望使用 prefetchCache 指令:這樣過期的 HTML 就不會在未來的預渲染中使用。

最後,如果預取的 HTML 文件包含過期資料,並且在預渲染頁面上也不會重新整理過期內容,那麼同時指定 prefetchCacheprerenderCache 是最合適的。

規範

規範
清除站點資料
#

瀏覽器相容性

另見