24、Cookie是什么?
HTTP 協議是無狀態的,主要是為了讓 HTTP 協議盡可能簡單,使得它能夠處理大量事務,HTTP/1.1 引 入 Cookie 來保存狀態信息。
Cookie 是服務器發送到用戶瀏覽器並保存在本地的一小塊數據,它會在瀏覽器之后向同一服務器再次發 起請求時被攜帶上,用於告知服務端兩個請求是否來自同一瀏覽器。由於之后每次請求都會需要攜帶 Cookie 數據,因此會帶來額外的性能開銷(尤其是在移動環境下)。
Cookie 曾一度用於客戶端數據的存儲,因為當時並沒有其它合適的存儲辦法而作為唯一的存儲手段,但 現在隨着現代瀏覽器開始支持各種各樣的存儲方式,Cookie 漸漸被淘汰。
新的瀏覽器 API 已經允許開發者直接將數據存儲到本地,如使用 Web storage API(本地存儲和會話存 儲)或 IndexedDB。
cookie 的出現是因為 HTTP 是無狀態的一種協議,換句話說,服務器記不住你,可能你每刷新一次網 頁,就要重新輸入一次賬號密碼進行登錄。這顯然是讓人無法接受的,cookie 的作用就好比服務器給你 貼個標簽,然后你每次向服務器再發請求時,服務器就能夠 cookie 認出你。
抽象地概括一下:一個 cookie 可以認為是一個「變量」,形如 name=value,存儲在瀏覽器;一個 session 可以理解為一種數據結構,多數情況是「映射」(鍵值對),存儲在服務器上。
25、Cookie有什么用途?用途
1.會話狀態管理(如用戶登錄狀態、購物車、游戲分數或其它需要記錄的信息)
2.個性化設置(如用戶自定義設置、主題等)
3.瀏覽器行為跟蹤(如跟蹤分析用戶行為等)
