cookie機制和session機制

2021-08-15 02:16:45 字數 2453 閱讀 8164

一、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方法了

web 快取機制 cookie與session

1.cookie cookie技術是客戶端的解決方案,cookie是由伺服器發給客戶端的特殊資訊,而這些資訊以文字檔案的方式存放在客戶端,然後客戶端每次向伺服器傳送請求的時候都會帶上這些特殊的資訊。web應用程式是使用http協議傳輸資料的。http協議是無狀態的協議。一旦資料交換完畢,客戶端與伺服...

Python中cookie和session的異同點

cookie和session的異同點 共同點 1.cookie和session都是用來儲存資料的 2.cookie和session都可以設定有效時間 不同點 1.cookie是儲存在瀏覽器客戶端,session是儲存在服務端 2.session相對cookie來說更更安全 3.session依賴於c...

Flask中的cookie和session淺知

cookie技術的必要性 cookie的實現原理 cookie時用來將使用者資訊儲存在客戶端的技術,使用者資訊會被存放於客戶端的計算機中。cookie儲存到客戶端之後,當使用者再次通過瀏覽器發起對伺服器的請求的時候,瀏覽器就會自動帶著此 相關的cookie資訊來請求資料庫。而cookie資訊裡面儲存...