cookie和session的區別

2021-06-26 22:43:21 字數 2545 閱讀 8132

分類: 計算機網路

2011-10-21 10:43

4785人閱讀收藏

舉報 session

瀏覽器伺服器

servlet

url儲存

一、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)else

session.setattribute(「someidentifier」,value); // 使用新建立的物件覆蓋原來的老的物件

二十

九、如何使用會話累計使用者的資料

使用可變的資料結構,比如陣列、list、map或含有可寫字段的應用程式專有的資料結構。通過這種方式,除非首次分配物件,否則不需要呼叫setattribute。例如

十、不可更改物件和可更改物件在會話資料更新時的不同處理

不可更改物件因為一旦建立之後就不能更改,所以每次要修改會話中屬性的值的時候,都需要

呼叫setattribute(「someidentifier」,newvalue)來代替原有的屬性的值,否則屬性的值不會被更新

可更改物件因為其自身一般提供了修改自身屬性的方法,所以每次要修改會話中屬性的值的時

候,只要呼叫該可更改物件的相關修改自身屬性的方法就可以了。這意味著我們就不需要調

用setattribute方法了

Session和Cookie的區別

session和cookie的區別 1 儲存的位置不同 session儲存在伺服器端的記憶體中,占用伺服器資源。cookie是儲存在客戶端。可以是瀏覽器中或者是檔案中 2 儲存的時間不同 session是關閉當前會話相關瀏覽器後自動清空。cookie是根據過期時間而會有不同。3 安全性不同 sess...

cookie和session的區別

一 cookie機制和session機制的區別 具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。同時我們也看到,由於在伺服器端保持狀態的方案在客戶端也需要儲存乙個標識,所以session機制可能需要借助於cookie機制來達到儲存標識的目...

cookie和session的區別

一 cookie機制和session機制的區別 具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。同時我們也看到,由於才伺服器端保持狀態的方案在客戶端也需要儲存乙個標識,所以session 機制可能需要借助於cookie機制來達到儲存標識的...