ookie簡介
1. 定義
cookie是由服務器發送給客戶端(瀏覽器)的小量信息。
2. 作用
cookie是鍵值對形式存儲的少量信息,那它有什么作用呢?
我們知道,平時上網時都是使用無狀態的HTTP協議傳輸出數據,這意味著客戶端與服務端在數據傳送完成后就會中斷連接。這時我們就需要一個一直保持會話連接的機制。在session出現前,cookie就完全充當了這種角色。也就是,cookie的小量信息能幫助我們跟蹤會話。一般該信息記錄用戶身份。
當然cookie也常記錄跟蹤購物車的商品信息(如數量)、記錄用戶訪問次數等。
3. 原理
客戶端請求服務器時,如果服務器需要記錄該用戶狀態,就使用response向客戶端瀏覽器頒發一個Cookie。而客戶端瀏覽器會把Cookie保存起來。當瀏覽器再請求服務器時,瀏覽器把請求的網址連同該Cookie一同提交給服務器。服務器通過檢查該Cookie來獲取用戶狀態。
4.添加cookie示例
獲取客戶端的Cookie時,只能獲取name與value屬性,其它屬性都不會被提交。
Cookie c = new Cookie("username","peter");// 新建一個Cookie對象 c.setMaxAge(24*60*60); // 設置過期時間1天,以秒為單位 response.addCookie(c);
5.刪除cookie示例
刪除某個Cookie時,只需要新建一個只有maxAge和value不一樣的同名Cookie,然后添加到response中覆蓋原來的Cookie
Cookie cookie = new Cookie("username","peter");// 新建Cookie
cookie.setMaxAge(0); // 設置生命周期為0,表示將要刪除
response.addCookie(cookie); // 執行添加后就從response里刪除了
6.修改cookie示例
修改某個Cookie時,只需要新建一個只有value屬性不一樣的同名Cookie,然后添加到response中覆蓋原來的Cookie
Cookie cookie = new Cookie("username","joker");// 新建Cookie
cookie.setMaxAge(24*60*60); // 設置生命周期
response.addCookie(cookie); // 執行添加后就從response里覆蓋修改了
注意:修改、刪除Cookie時,新建的Cookie除value、maxAge之外的所有屬性,例如name、path、domain等,都要與原Cookie完全一樣。否則,瀏覽器將視為兩個不同的Cookie而不會覆蓋之前的Cookie,從而導致修改、刪除失敗。
原文:https://blog.csdn.net/qq_29132907/article/details/80390792?