Cookie概念及類型
HTTP cookie,簡稱cookie,又稱數碼存根、“網站/瀏覽+魔餅/魔片”等,是瀏覽網站時由網絡服務器創建并由網頁瀏覽器存放在用戶計算機或其他設備的小文本文件。Cookie使Web服務器能在用戶的設備存儲狀態信息(如添加到在線商店購物車中的商品)或跟蹤用戶的瀏覽活動(如點擊特定按鈕、登錄或記錄歷史)。
cookie 的起源
早期的 Web 應用面臨的最大問題之一就是如何維持狀態。簡言之,服務器無法知道兩個請求是否來自于同一個瀏覽器。當時,最簡單的辦法就是在請求的頁面中插入一個 token,然后在下次請求時將這個 token 返回至服務器。這需要在頁面的 form 表單中插入一個包含 token 的隱藏域,或者將 token 放在 URL 的 query 字符串中來傳遞。這兩種方法都需要手動操作,而且極易出錯。
當時網景通訊的一名員工 Lou Montulli,在 1994 年將 “magic cookies” 的概念應用到 Web 通訊中。他試圖解決 Web 的第一個購物車應用,現在購物車成了購物網站的支柱。他的原始說明文檔提供了 cookie 工作原理的基本信息,該文檔后來被作為規范納入到 RFC 2109(大多數瀏覽器的實現參考文檔)中,最終被納入到 RFC 2965 中。Montulli 也被授予 cookie 的美國專利。網景瀏覽器在它的第一個版本中就開始支持 cookie,現在所有 Web 瀏覽器都支持 cookie。
HTTP Cookie 類型
**會話 cookie:**這些 cookie 在用戶訪問網站時臨時存儲信息。它們存儲在用戶的瀏覽器中,通常在用戶關閉瀏覽器時被刪除。
**持久性 cookie:**即使在用戶關閉瀏覽器后,這些 cookie 仍會保留在用戶的計算機上。它們用于記住用戶的偏好并幫助實現個性化。
**安全 cookie:**這些 cookie 有助于保護敏感信息,如密碼和信用卡號。
**第三方 cookie:**這些 cookie 由第三方網站創建,可在多個網站上跟蹤用戶活動。
**Flash cookies:**這些 cookie 存儲有關視頻和音頻文件的信息。它們存儲在用戶的計算機上,用于幫助流媒體。
Cookie原理
用戶第一次請求服務器時,服務器返回一個帶Set-Cookie(Set-Cookie1)首部的報文,值為鍵值對,描述了cookie的名字、值、域、路徑等信息,然后客戶端接下來每次訪問服務器的時候都會帶上一個Cookie首部的報文,它的值剛好是前面響應報文返回的名字鍵值對,從而達到驗證用戶身份的信息。
Cookie過程圖:
cookie的設置以及發送過程:
- 客戶端發送一個http請求到服務器端
- 服務器端發送一個http響應到客戶端,其中包含Set-Cookie頭部
- 客戶端發送一個http請求到服務器端,其中包含Cookie頭部
- 服務器端發送一個http響應到客戶端
Cookie的屬性
value屬性
value屬性是必需的,它是一個鍵值對,用于指定Cookie的值。