Cookie技術 客戶端的狀態管理

2021-10-04 04:03:50 字數 2830 閱讀 5726

舉個例子:客戶端和伺服器之間可能會產生多次的請求和響應,從客戶端開始向伺服器之間發生請求,中間不管多少次請求響應,直到最後一次客戶端訪問伺服器結束,客戶端關閉。這一整個的過程就是一次會話

我們知道,http本身是無狀態協議,不對之前發生過的請求和響應的狀態進行管理。

無狀態其實是有利有弊的:

如何去解決呢?讓伺服器去管理狀態屬實不太現實,畢竟負擔太大。但有時後真就出現使用者頻繁登入頻繁訪問的情況,這可如何是好?那只能把艱鉅的任務交給客戶端了,於是,cookie應運而生。

cookie 實際上是儲存在客戶端上的文字資訊,保留了各種跟蹤的資訊,使用者機制就是使用者識別和狀態管理。

cookie技術通過在請求和響應報文中寫入cookie資訊來控制客戶端的狀態:

客戶端向伺服器發出請求,如果伺服器需要記錄使用者的狀態,就在響應中設定set-cookie的首部字段資訊,通知客戶端儲存cookie。

客戶端收到響應之後,如果cookie有效,則將cookie進行持久化,即寫入對應的cookie檔案中儲存。

瀏覽器再次訪問伺服器時,將會自動在請求報文中加入cookie,告訴伺服器,這次我帶來了上次你給我發的cookie。

伺服器收到請求之後,會檢查一下這個cookie,獲悉該請求從哪個客戶端而來,對比伺服器上的記錄,得到之前的狀態資訊

set-cookie:是開始狀態管理所使用的響應首部字段。

cookie:伺服器接收到的cookie資訊,也是發往伺服器的請求首部字段。

name=value:cookie的名稱和值,必需。

expires=date:cookie的有效期,預設為瀏覽器關閉為止。

path=path:將伺服器上的該目錄作為cookie的適用物件,預設為文件所在檔案目錄。

domain=網域名稱:cookie物件的適用網域名稱,預設為建立cookie的伺服器網域名稱。

secure:僅在https安全通訊時才傳送cookie。

httponly:使cookie不能被js指令碼訪問。

有時為了解決***等問題,可以利用會話技術解決。

sun公司將cookie操作相關的api封裝成了cookie類,我們可以靈活利用cookie類完成會話跟蹤。

cookie cookie =

newcookie

("logintime"

,s);

注意name和value的值都必須合理,否則需要進行編碼。

使用初始名稱/值對定義cookie。名稱不能包含空格、逗號或分號,只能包含ascii字母數字字元。

response.

addcookie

(cookie)

;

可以在一次響應中新增多個cookie。

//設定最大生命時長,以秒為單位,這裡設定為一天

cookie.

setmaxage(60

*60*24

);

如果不設定最大生命時長,則預設到瀏覽器關閉為止

//將有效路徑設定為web應用的虛擬路徑

cookie.

setpath

(request.

getcontextpath()

+"/"

);

與path屬性相關,用於限制指定cookie的傳送範圍的檔案目錄。

如果不指定,預設為只有當前資源的對映路徑下有效。

cookie[

] cookies = request.

getcookies()

;

返回請求中所有cookie物件組成的陣列,如果沒有cookie,則返回null。

/*殺死cookie*/

//建立名稱相同的cookie

cookie cookie =

newcookie

("time"

,"aaa");

//設定相同的path

cookie.

setpath

(request.

getcontextpath()

+"/");

//設定生命時長為0

cookie.

setmaxage(0

);//傳送到瀏覽器

response.

addcookie

(cookie)

;

需要注意的是:一旦伺服器將cookie傳送到客戶端,就沒有顯式刪除cookie的辦法。但是可以通過覆蓋cookie實現實質性的刪除操作:即伺服器建立乙個maxage為0,且除了value之外,其他都必須相同cookie,發往客戶端。

但凡有一點不滿足,都會建立乙個新的同名cookie,而不是刪除原來的。

domain:規定哪些網域名稱需要附帶cookie。

path:指定哪些路徑需要附帶cookie。

儲存個性化資訊:使用者的偏好,網頁的背景圖等。

對話管理:儲存登入、購物車等資訊。

追蹤使用者:記錄和分析使用者的行為。

客戶端會話技術 cookie

1 會話 一次會話中包含多次請求和響應。一次會話 瀏覽器第一次給伺服器傳送資源,會話建立,直到有一方斷開為止。2 功能 在一次會話的範圍內的多次請求間,共享資料。3 方式 客戶端會話技術 cookie 伺服器端會話技術 session。1 概念 客戶端會話技術,將資料儲存到客戶端。2 快速入門 使用...

清除客戶端cookie

equest.cookies.clear 這個方法並不是刪除cookie 刪除 cookie 即從使用者的硬碟中物理移除 cookie 是修改 cookie 的一種形式。由於 cookie 在使用者的計算機中,因此無法將其直接移除。但是,可以讓瀏覽器來為您刪除 cookie。該技術是建立乙個與要刪除...

android 客戶端 Cookie處理

android 客戶端 cookie處理 cookie,有時也用其複數形式cookies,指某些 為了辨別使用者身份 進行session跟蹤而儲存在使用者本地終端上的資料 通常經過加密 cookie最早是網景公司的前 雇員lou montulli在1993年3月的發明。cookie是由伺服器端生成,...