Isoline 指南
Cookie、本機儲存空間、快取與瀏覽器指紋有什麼不同?
Cookie、本機儲存空間與快取都屬於瀏覽器保留的狀態;瀏覽器指紋則由外部可觀察的訊號組成。因此,清除儲存資料只能處理身分識別資訊的一部分。
這些概念經常一起出現在隱私設定、除錯說明與瀏覽器設定檔產品中,但它們的行為差異很大。只說「清除瀏覽器資料」,還不足以讓人知道該做什麼。
先掌握各種機制的分工
| 機制 | 由誰建立或控制 | 一般適用範圍 | 常見用途 | 是否隨請求自動傳送? |
|---|---|---|---|---|
| HTTP Cookie | 伺服器設定;瀏覽器依範圍規則儲存並回傳 | 主機或網域、路徑、存續時間及連線條件 | 工作階段識別碼、偏好設定、防濫用狀態 | 是,請求符合範圍時會傳送 |
localStorage |
網站 JavaScript | 來源,並受瀏覽器分區與政策限制 | 可持續保留的應用程式索引鍵值狀態 | 否 |
sessionStorage |
網站 JavaScript | 頂層瀏覽工作階段內的來源 | 暫存分頁或工作流程狀態 | 否 |
| HTTP 快取 | 瀏覽器與 HTTP 快取規則 | 快取索引鍵、回應指令、瀏覽器政策 | 重用回應,降低延遲與傳輸量 | 可能直接回應請求,或重新驗證內容 |
| Cache Storage API | 網站或 Service Worker 的 JavaScript | 來源或儲存分區 | 離線資源及應用程式自行管理的回應 | 不會自動附帶,由程式碼決定用途 |
| 瀏覽器指紋 | 網站或其他觀察者量測訊號 | 取決於觀察者與訊號 | 安全、防詐、分析或追蹤 | 部分訊號會出現在請求中,其餘需要主動執行程式碼 |
前五項涉及保留下來的狀態。最後一項則是觀察與關聯判斷的方法,不過儲存狀態也可能成為它的輸入。
Cookie:依範圍規則提供給伺服器的狀態
HTTP 本身大致不保留狀態。Cookie 讓伺服器交給瀏覽器一組名稱與值,並在之後符合條件的請求中再次收到它。RFC 6265 定義了回應中的 Set-Cookie 標頭、請求中的 Cookie 標頭,以及瀏覽器的儲存模型。
Cookie 可以具有以下特性:
- 工作階段型:保留至瀏覽器定義的工作階段結束。
- 持續型:設有到期時間或最長存續時間。
- 僅限主機:只回傳給當初設定它的主機。
- 網域範圍:可傳送給指定網域及符合條件的子網域。
- 路徑範圍:只在請求路徑符合條件時回傳。
- Secure:只透過瀏覽器認定的安全通道回傳。
- HttpOnly:不提供給程式碼可用的 Cookie API,但仍可隨 HTTP 請求傳送。
這些屬性控制傳送方式與程式碼存取權,並不會讓 Cookie 值本身成為獨立的安全邊界。RFC 6265 特別提醒,不應把 Path 屬性當作安全機制;敏感 Cookie 內容還需要安全傳輸與其他保護。
為什麼刪除 Cookie 會登出?
許多服務會將隨機產生的工作階段識別碼存入 Cookie,而將帳號紀錄與工作階段詳細資料留在伺服器上。刪除 Cookie 會移除瀏覽器持有的識別碼,因此下一個請求不再出示原本的工作階段。伺服器上的帳號與其他工作階段可能依然存在。
這也是複製驗證 Cookie 很敏感的原因。可用的工作階段識別碼可能等同登入憑證。不要把原始 Cookie 貼進工單、日誌、自動化輸出或團隊聊天。
本機儲存空間:由程式碼控制、限於特定來源的狀態
HTML 標準將 localStorage 定義為存取某個來源的本機儲存區域。它的設計用途是跨視窗使用,並在目前工作階段結束後繼續保留。其中存放字串形式的索引鍵值配對,具備該來源存取權的程式碼可以讀取。
來源通常由通訊協定、主機與連接埠組成。因此,下列網址屬於不同的儲存範圍:
https://app.example.testhttp://app.example.testhttps://admin.example.testhttps://app.example.test:8443
網址路徑不屬於來源。同一來源下的 /billing/ 與 /support/ 頁面可以存取同一個本機儲存區域,除非應用程式另行建立邏輯上的區隔。
與 Cookie 不同,localStorage 項目不會自動附加到 HTTP 請求。網站程式碼必須主動讀取,並決定如何使用。這適合儲存介面偏好、草稿狀態與應用程式資料,但任何以該來源權限執行的程式碼都可能存取它。設計敏感工作階段時,必須考慮程式碼遭入侵的情況,不能把「本機」理解成「保密」。
這裡的持續性是指資料可能跨瀏覽工作階段保留,不代表永久保存。使用者可以清除資料,瀏覽器政策可以限制使用,瀏覽器也可能套用容量與資料逐出規則。
sessionStorage 的存續時間不同
sessionStorage 與來源及頂層瀏覽工作階段相關聯。它適合保存分頁或視窗中的流程尚未結束時所需的狀態,並在該工作階段結束後終止。複製或還原分頁時,不同瀏覽器可能有不同的生命週期細節,因此應用程式不應以它作為重要工作的唯一紀錄。
本機儲存空間只是網站資料機制之一
現代網頁應用程式也可能將資料保存在 IndexedDB、Cache Storage、Service Worker 註冊項目、來源私有檔案系統、權限及其他瀏覽器管理的儲存區域。只在開發人員工具中清除 localStorage,可能仍會留下其他狀態。
HTML 標準的隱私指引建議,瀏覽器應讓使用者一併清除各種持續性儲存機制。否則,網站可能利用其中一個儲存區域,重建已從另一個區域移除的識別碼。
快取:同一個名稱,數種不同機制
HTTP 快取
RFC 9111 將 HTTP 快取定義為回應訊息的儲存區,以及控制其儲存、擷取與刪除的系統。瀏覽器可以重用仍在有效期內的回應,或重新驗證已過期的回應,以降低延遲與網路傳輸量。
快取索引鍵至少包含請求方法與目標 URI,回應標頭則影響回應能否重用以及可重用多久。HTTP 快取屬於效能最佳化機制。某張圖片或某段程式碼被快取,通常不代表使用者仍處於登入狀態。
快取狀態仍可能影響隱私。在某些威脅模型下,載入時間或資源是否已存在可能透露資訊。W3C 的指紋辨識指引也將觀察快取資源列為推測瀏覽器或使用者設定的方法之一。
Cache Storage 與 Service Worker
Cache Storage API 讓網站明確建立由程式碼控制的 Cache 物件,常用於離線網頁應用程式。Service Workers 規格 說明,這些快取與瀏覽器的 HTTP 快取分開,依來源隔離,並由應用程式邏輯更新或刪除,而不是依一般 HTTP 有效期規則處理。
除錯時,這個差異很重要:
- 清除「快取圖片和檔案」處理的是瀏覽器的一般快取。
- 清除網站資料也可能移除 Cache Storage 與 Service Worker 狀態。
- 重新載入時略過 HTTP 快取,仍可能有作用中的 Service Worker 控制請求。
決定如何檢查或清除之前,先確認自己指的是哪一種快取。
儲存分區會再加入一個識別條件
過去,依來源劃分範圍可能讓嵌入式第三方在不同頂層網站中讀到同一份儲存資料。現代瀏覽器越來越常將頂層網站或相關情境納入儲存索引鍵。
Chrome 說明,其儲存分區機制會阻止嵌在 a.com 的 example.com 框架,自動與嵌在 b.com 的同來源框架共用 Local Storage、IndexedDB、Cache Storage、Service Worker 及部分通訊機制。依 Chrome 文件,這項功能自 Chrome 115 起已對所有使用者啟用,部分其他 API 則在後續版本有所調整。
這能解釋一種容易令人困惑的情況:同一個嵌入式來源,可能因外層網站不同而看到不同的儲存資料。但這不代表所有儲存機制都採用統一的雙索引鍵模型。瀏覽器版本、頂層與嵌入式情境、儲存存取授權、企業政策、擴充功能及各 API 的規則,都可能改變結果。
請測試實際使用情境,不要只根據網域名稱推斷。
瀏覽器指紋:來自觀察的訊號,並不是某個資料夾
W3C 將瀏覽器指紋辨識定義為:透過設定或其他可觀察特徵,識別或重新識別使用者、使用者代理或裝置的能力。其 2025 年指引區分了幾種形式:
- 被動指紋辨識:使用請求或網路中已可觀察的資訊,例如請求標頭與 IP 位址。
- 主動指紋辨識:執行程式碼,以觀察視窗大小、字型、已連接裝置、效能、感測器或圖形繪製等特徵。
- 短暫事件關聯:利用幾乎同時發生的裝置或環境變化,連結不同情境。
- 類似 Cookie 的技術:透過可能比一般 Cookie 保留更久,或能重建 Cookie 的機制,儲存與讀取狀態。
指紋通常不是瀏覽器儲存的一個固定值。觀察者選擇訊號、加以組合,再判斷與先前造訪的相似程度。瀏覽器更新、視窗調整、新增字型、連接裝置或網路路徑改變時,結果都可能變動。清除 Cookie 後,它也可能仍然相似,因為許多底層訊號沒有改變。
指紋辨識不等於身分證明
同一組訊號可能出現在許多人身上,同一個人的訊號也可能逐漸改變。網站還可能結合登入狀態、伺服器上的帳號歷史、網路信譽或已儲存的識別碼。因此,清除資料後仍被認出,不能證明單靠指紋辨識就達成了識別。
同樣地,更改一項可見設定,不能保證獲得新的身分。一致且常見的設定可能降低某些獨特性;多項不尋常且彼此獨立的修改,反而可能形成更罕見的組合。這些訊號無法支持「完全不可見」或「一定獲第三方接受」的保證。
常見清除操作究竟改變什麼?
| 操作 | 可能的效果 | 仍需注意的部分 |
|---|---|---|
| 刪除某網站的 Cookie | 移除瀏覽器持有且符合範圍的 Cookie,通常會讓該設定檔登出 | 伺服器端帳號資料、其他裝置與非 Cookie 儲存資料可能仍在 |
| 刪除 Cookie 與其他網站資料 | 依瀏覽器介面和範圍,可能移除 Cookie、Web Storage、IndexedDB、Service Worker 及相關網站狀態 | 密碼管理工具、下載檔案、帳號端資料與可觀察裝置訊號是另外的項目 |
| 刪除快取圖片與檔案 | 移除一般快取回應內容 | Cookie、本機儲存空間與 Cache Storage 可能需要另外勾選 |
| 清除歷史紀錄 | 移除所選範圍內的已造訪網址紀錄與相關建議 | 已下載檔案與網站持有的紀錄仍會保留 |
| 移除瀏覽器設定檔 | 從裝置移除該設定檔的本機書籤、歷史紀錄、密碼與其他設定 | 已同步帳號資料、下載或匯出的檔案、備份與伺服器端資料可能仍在 |
| 建立新設定檔 | 從另一組設定檔狀態開始 | 裝置、作業系統、瀏覽器版本與網路仍可能呈現可關聯的訊號 |
Chrome 的瀏覽資料說明將歷史紀錄、Cookie 與其他網站資料、快取圖片與檔案、下載紀錄、自動填入、網站設定及代管應用程式資料分成不同類別。文件也指出,刪除下載紀錄不會刪除電腦上的下載檔案;在登入狀態下刪除資料,可能影響 Google 帳戶與其他同步裝置。
實際效果取決於所選時間範圍、設定檔、帳號狀態、瀏覽器版本及企業政策。刪除可能難以復原的資料之前,請先閱讀確認訊息。
獨立瀏覽器設定檔如何影響這些機制?
正確分隔且能持續保留狀態的設定檔,應各自擁有 Cookie 儲存區、網頁儲存區域、網站資料庫、Cache Storage、HTTP 快取、歷史紀錄、網站權限與擴充功能狀態。這能避免設定檔 B 直接繼承設定檔 A 儲存的工作階段。
但數種訊號仍可能相同:
- 瀏覽器引擎與版本。
- 作業系統與硬體。
- 已安裝的系統字型與顯示特性。
- 從主機繼承的語言、時區或輔助使用設定。
- 未設定獨立路徑時的 IP 位址與網路路徑。
- 在應用程式層級連結活動的操作行為或登入。
不同設定檔也可能透過擴充功能、權限、視窗大小、語言設定或代理路徑呈現不同訊號。整體效果取決於實作與使用情境。評估設定檔分隔時,應確認狀態是否隔離,而不是把它視為指紋保證。
先診斷症狀,再決定要清除什麼
「我被登出了」
先檢查 Cookie。工作階段 Cookie 可能已到期、遭刪除、被瀏覽器政策拒絕,或由伺服器撤銷。本機儲存空間可能支援介面狀態,但它通常不是隨 HTTP 請求自動傳送、用來驗證身分的 Cookie。
「網站忘記了我的草稿或離線資料」
檢查本機儲存空間、IndexedDB、Cache Storage 與 Service Worker 狀態。確認來源,以及頁面是頂層頁面還是嵌入其他網站,因為分區機制可能改變可用的儲存資料。
「第一次重新載入很慢」
空白或過期的 HTTP 快取可能是原因之一。網路、伺服器與 Service Worker 行為也可能造成同樣症狀,因此下結論前,先記錄請求時間與快取狀態。
「清除資料後,網站仍認得這個環境」
可能原因不只一種:帳號仍在其他地方登入、伺服器透過帳號或網路資料關聯這次造訪、其他瀏覽器儲存資料未被清除,或可觀察特徵讓工作階段被連結起來。把指紋辨識視為待驗證的假設之一,不要直接認定它就是答案。
依問題選擇處理方式
- 若問題涉及伺服器工作階段,檢查或清除 Cookie。
- 若網頁應用程式保留了本機狀態,檢查依來源區分的網站儲存資料。
- 若在診斷過期或離線內容,區分 HTTP 快取與 Cache Storage。
- 若工作狀態必須各自獨立,使用能持續保留狀態的獨立設定檔。
- 將指紋辨識理解為對可觀察訊號的關聯判斷;清除資料或修改單一設定,無法消除它的所有識別依據。
這樣能避免兩種代價高昂的錯誤:刪除超過必要範圍的狀態,以及以為空白的 Cookie 儲存區就等於新的裝置身分。
適用限制
網頁儲存與隱私行為會隨瀏覽器及版本演進。第三方 Cookie 規則、儲存分區、資料逐出、同步、企業政策、擴充功能與私密瀏覽模式,都可能改變本文描述的行為。本指南說明的是查閱日期當時的標準與 Chrome 文件,並未涵蓋每一種瀏覽器或網站實作。
關於本指南
- AI 協助
- 本文使用 AI 從英文原文翻譯。Isoline 對發布內容負責。目前尚無人工語言審閱紀錄。
來源
來源支持下列主題。查閱日期表示引用資料何時經過確認。
- IETF RFC 6265:HTTP 狀態管理機制 Internet Engineering Task Force
- 支持的主題
- Cookie 的儲存、傳送、屬性語意、安全限制,以及隨請求附帶的工作階段權限。
- 查閱日期
- WHATWG HTML 標準:Web Storage WHATWG
- 支持的主題
- 依來源區分的 localStorage 與 sessionStorage 行為、持續性及隱私指引。
- 查閱日期
- IETF RFC 9111:HTTP 快取 Internet Engineering Task Force
- 支持的主題
- HTTP 快取的儲存、索引鍵、有效期、重新驗證與回應重用方式。
- 查閱日期
- W3C Service Workers:Cache 與 CacheStorage World Wide Web Consortium
- 支持的主題
- 受來源限制、由程式碼控制的 Cache Storage,以及它與瀏覽器 HTTP 快取的區別。
- 查閱日期
- Chrome Privacy Sandbox:儲存空間分區 Google Privacy Sandbox
- 支持的主題
- Chrome 依頂層情境進行儲存分區的方式、推出情況及各 API 的限制。
- 查閱日期
- Google Chrome 說明:刪除 Chrome 瀏覽資料 Google Chrome Help
- 支持的主題
- 不同清除類別、同步的影響,以及刪除歷史紀錄後仍會保留的資料。
- 查閱日期
- Chrome for Developers:chrome.browsingData API Chrome for Developers
- 支持的主題
- 瀏覽器資料類型控制,包括 Cache Storage、Service Worker 與網站儲存類別。
- 查閱日期
- Google Chrome 說明:透過多個設定檔使用 Chrome Google Chrome Help
- 支持的主題
- 本機 Chrome 設定檔的分隔方式,以及刪除設定檔的效果與限制。
- 查閱日期
- W3C:在網頁規格中減輕瀏覽器指紋辨識 World Wide Web Consortium
- 支持的主題
- 被動、主動與有狀態指紋辨識的資訊來源,以及關聯判斷的限制。
- 查閱日期