1. 定義
Cookie中文名稱為“小型文本文件”, 指某些網(wǎng)站為了辨別用戶身份而儲存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過加密)
2. 分類
Cookie保存在客戶端中,按照保存位置分為內(nèi)存cookie和硬盤cookie。
- 內(nèi)存cookie保存在內(nèi)存中,由瀏覽器維護(hù),瀏覽器關(guān)閉后就消失了。
- 硬盤cookie存儲在硬盤中,有一個過期時間(expiration time),除非用戶手動刪除或者到了過期時間,否則不會消失。
Cookie按照存在時間,可分為非持久Cookie和持久Cookie。
3. 用途
HTTP協(xié)議是無狀態(tài)的,即服務(wù)器不知道用戶上一次做了什么,阻礙了服務(wù)器與客戶端之間的交互。所以使用cookie來協(xié)助交互,服務(wù)器可以設(shè)置或讀取Cookies中包含信息,借此維護(hù)用戶跟服務(wù)器會話中的狀態(tài)。
例如當(dāng)?shù)卿浺粋€網(wǎng)站時,網(wǎng)站往往會請求用戶輸入用戶名和密碼,并且用戶可以勾選“下次自動登錄”。如果勾選了,那么下次訪問同一網(wǎng)站時,用戶會發(fā)現(xiàn)沒輸入用戶名和密碼就已經(jīng)登錄了。這正是因為前一次登錄時,服務(wù)器發(fā)送了包含登錄憑據(jù)(用戶名加密碼的某種加密形式)的Cookie到用戶的硬盤上。第二次登錄時,如果該Cookie尚未到期,瀏覽器會發(fā)送該Cookie,服務(wù)器驗證憑據(jù),于是不必輸入用戶名和密碼就讓用戶登錄了。
4. 缺陷
- Cookie會被附加在每個HTTP請求中,所以無形中增加了流量。
- 由于在HTTP請求中的Cookie是明文傳遞的,所以安全性成問題,除非用HTTPS。
- Cookie的大小限制在4KB左右,對于復(fù)雜的存儲需求來說是不夠用的。
5. 總結(jié)
- Cookie 是瀏覽器訪問服務(wù)器后,服務(wù)器傳給瀏覽器的一段數(shù)據(jù)。
- 瀏覽器需要保存這段數(shù)據(jù),不得輕易刪除。
- 此后每次瀏覽器訪問該服務(wù)器,都必須帶上這段數(shù)據(jù)。
參考鏈接
https://zhuanlan.zhihu.com/p/22396872?refer=study-fe
https://zh.wikipedia.org/wiki/Cookie