更新時間:2020年08月07日17時11分 來源:黑馬程序員 瀏覽次數(shù):
學(xué)習(xí)目標(biāo):
掌握 Cookie 的定義和使用
Cookie 定義
Cookie,有時也用其復(fù)數(shù)形式Cookies。
指的是由服務(wù)端生成, 保存在客戶端的一種數(shù)據(jù)存儲形式,內(nèi)部以 key-value 鍵值對形式存儲, value大小有限制(最大為4kb), 數(shù)據(jù)不安全。
背景:
Cookie 最早是網(wǎng)景公司的前雇員 Lou Montulli 在 1993 年 3 月的發(fā)明。Cookie 是由服務(wù)器端生成,發(fā)送給User-Agent(一般是瀏覽器),瀏覽器會將 Cookie 的 key/value 保存到某個目錄下的文本文件內(nèi),下次請求同一網(wǎng)站時就發(fā)送該 Cookie 給服務(wù)器(前提是瀏覽器設(shè)置為啟用 cookie )。Cookie 名稱和值可以由服務(wù)器端開發(fā)自己定義,這樣服務(wù)器可以知道該用戶是否是合法用戶以及是否需要重新登錄等。服務(wù)器可以利用 Cookies 包含信息的任意性來篩選并經(jīng)常性維護這些信息,以判斷在 HTTP 傳輸中的狀態(tài)。Cookies 最典型記住用戶名。
建議:
Cookie 是存儲在瀏覽器中的一段純文本信息,建議不要存儲敏感信息如密碼,因為電腦上的瀏覽器可能被其它人使用。
Cookie 的特點
·Cookie 以鍵值對 Key-Value 形式進行信息的存儲
·Cookie 基于域名安全,不同域名的 Cookie 是不能互相訪問的
例如:
保存在 www.baidu.com 域名下面的 cookie 不能夠被其他域名的訪問
設(shè)置 Cookie
可以通過 HttpResponse 對象中的 set_cookie 方法來設(shè)置 cookie。
參數(shù)解析:
key: cookie 中保存信息的名稱
value: cookie 中保存信息時, 名稱對應(yīng)的值部分
max_age: cookie 中保存信息的有效期, 超過有效期, key-value 失效
其中 max_age 單位為秒, 默認為 None. 如果設(shè)置 None 值, 則關(guān)閉瀏覽器失效。
例如:
讀取 Cookie
可以通過 **HttpRequest** 對象( request )的 **COOKIES** 屬性來讀取本次請求攜帶的 cookie 值。
例如:
request.COOKIES 為字典類型, 可以使用字典的 get( )
例如:
總結(jié):
·cookie 用于保持前后端狀態(tài)
·cookie 的設(shè)置為: response.set_cookie( key, value, max_age=時間(s))
·cookie 的獲取: request.COOKIES.get( key )
猜你喜歡: