cookie的問題詳解

2021-04-12 16:19:07 字數 2103 閱讀 9962

一、cookie機制和session機制的區別

具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。

同時我們也看到,由於才伺服器端保持狀態的方案在客戶端也需要儲存乙個標識,所以session

機制可能需要借助於cookie機制來達到儲存標識的目的,但實際上還有其他選擇

二、會話cookie和持久cookie的區別

如果不設定過期時間,則表示這個cookie生命週期為瀏覽器會話期間,只要關閉瀏覽器視窗,cookie就消失了。這種生命期為瀏覽會話期的cookie被稱為會話cookie。會話cookie一般不儲存在硬碟上而是儲存在記憶體裡。

如果設定了過期時間,瀏覽器就會把cookie儲存到硬碟上,關閉後再次開啟瀏覽器,這些cookie依然有效直到超過設定的過期時間。

儲存在硬碟上的cookie可以在不同的瀏覽器程序間共享,比如兩個ie視窗。而對於儲存在記憶體的cookie,不同的瀏覽器有不同的處理方式。

三、如何利用實現自動登入

當使用者在某個**註冊後,就會收到乙個惟一使用者id的cookie。客戶後來重新連線時,這個

使用者id會自動返回,伺服器對它進行檢查,確定它是否為註冊使用者且選擇了自動登入,從而使使用者務需給出明確的使用者名稱和密碼,就可以訪問伺服器上的資源。

四、如何根據使用者的愛好定製站點

**可以使用cookie記錄使用者的意願。對於簡單的設定,**可以直接將頁面的設定儲存在cookie中完成定製。然而對於更複雜的定製,**只需僅將乙個惟一的識別符號傳送給使用者,由伺服器端的資料庫儲存每個識別符號對應的頁面設定。

五、cookie的傳送

1.建立cookie物件

2.設定最大時效

3.將cookie放入到http響應報頭

如果你建立了乙個cookie,並將他傳送到瀏覽器,預設情況下它是乙個會話級別的cookie:儲存在瀏覽器的記憶體中,使用者退出瀏覽器之後被刪除。如果你希望瀏覽器將該cookie儲存在磁碟上,則

需要使用maxage,並給出乙個以秒為單位的時間。將最大時效設為0則是命令瀏覽器刪除該cookie。

傳送cookie需要使用httpservletresponse的addcookie方法,將cookie插入到乙個set-cookie http請求報頭中。由於這個方法並不修改任何之前指定的set-cookie報頭,而是建立新的報頭,因此我們將這個方法稱為是addcookie,而非setcookie。同樣要記住響應報頭必須在任何文件內容傳送到客戶端之前設定。

六、cookie的讀取

1.呼叫request.getcookie

要獲取有瀏覽器傳送來的cookie,需要呼叫httpservletrequest的getcookies方法,這個呼叫返回cookie物件的陣列,對應由http請求中cookie報頭輸入的值。

2.對陣列進行迴圈,呼叫每個cookie的getname方法,直到找到感興趣的cookie為止

cookie與你的主機(域)相關,而非你的servlet或jsp頁面。因而,儘管你的servlet可能只傳送了單個cookie,你也可能會得到許多不相關的cookie。

例如:string cookiename = 「userid」;

cookie cookies = request.getcookies();

if (cookies!=null){

for(int i=0;i

九、使用cookie屬性的注意問題

屬性是從伺服器傳送到瀏覽器的報頭的一部分;但它們不屬於由瀏覽器返回給伺服器的報頭。 

因此除了名稱和值之外,cookie屬性只適用於從伺服器輸出到客戶端的cookie;伺服器端來自於瀏覽器的cookie並沒有設定這些屬性。 

因而不要期望通過request.getcookies得到的cookie中可以使用這個屬性。這意味著,你不能僅僅通過設定cookie的最大時效,發出它,在隨後的輸入陣列中查詢適當的cookie,讀取它的值,修改它並將它存回cookie,從而實現不斷改變的cookie值。

十、如何使用cookie記錄各個使用者的訪問計數

1.獲取cookie陣列中專門用於統計使用者訪問次數的cookie的值

2.將值轉換成int型

3.將值加1並用原來的名稱重新建立乙個cookie物件

4.重新設定最大時效

5.將新的cookie輸出

cookie屬性詳解

cookie 是在 http 協議下,伺服器或指令碼可以維護客戶工作站上資訊的一種方式。cookie 是由 web 伺服器儲存在使用者瀏覽器 客戶端 上的小文字檔案,它可以包含有關使用者的資訊。無論何時使用者鏈結到伺服器,web 站點都可以訪問 cookie 資訊 目前有些 cookie 是臨時的,...

cookie屬性詳解

在chrome控制台中的resources選項卡中可以看到cookie的資訊。乙個網域名稱下面可能存在著很多個cookie物件。name欄位為乙個cookie的名稱。value欄位為乙個cookie的值。domain欄位為可以訪問此cookie的網域名稱。非頂級網域名稱,如二級網域名稱或者 網域名稱...

Cookie原理詳解

在 中,http請求時無狀態的,也就是說即使第一次和伺服器連線後並且登陸成功後,第二次伺服器依然當前請求是哪個使用者。cookie出現就是為了解決這個問題,第一次登入後伺服器會返回一些資料 cookie 給瀏覽器,然後瀏覽器儲存在本地,當該使用者傳送紅第二個請求時,就會自動地把上次請求儲存的cook...