Cookie和Session的特點及其使用

2021-10-07 20:36:08 字數 2653 閱讀 8730

cookie和session均為會話技術

什麼是會話技術

會話是瀏覽器和伺服器之間的多次請求和響應:為了實現某乙個功能(比如買東西),瀏覽器和伺服器之間可能會產生多次的請求和響應,從瀏覽器訪問伺服器開始,到訪問伺服器結束,瀏覽器關閉為止,這期間產生的多次請求和響應加在一起就稱之為瀏覽器和伺服器之間的一次會話。

1. 概念:客戶端會話技術,將資料儲存到客戶端

* 使用步驟:

1. 建立cookie物件,繫結資料

* new cookie(string name, string value) 

2. 傳送cookie物件

* response.addcookie(cookie cookie) 

3. 獲取cookie,拿到資料

* cookie  request.getcookies()

* 實現原理

* 基於響應頭set-cookie和請求頭cookie實現

2.cookie的特點和作用

1. cookie儲存資料在客戶端瀏覽器

2. 瀏覽器對於單個cookie 的大小有限制(4kb) 以及 對同乙個網域名稱下的總cookie數量也有限制(20個)

* 作用:(簡而言之,cookie一般用來儲存一些並不敏感的資料)

1. cookie一般用於存出少量的不太敏感的資料

2. 在不登入的情況下,完成伺服器對客戶端的身份識別(比如在不登入的情況下開啟**等電商**)

3.cookie的注意事項

1. 一次可不可以傳送多個cookie?

* 可以

* 可以建立多個cookie物件,使用response呼叫多次addcookie方法傳送cookie即可。

2. cookie在瀏覽器中儲存多長時間?

1. 預設情況下,當瀏覽器關閉後,cookie資料被銷毀

2. 持久化儲存:

* setmaxage(int seconds)

1. 正數:將cookie資料寫到硬碟的檔案中。持久化儲存。並指定cookie存活時間,時間到後,cookie檔案自動失效

2. 負數:預設值

3. 零:刪除cookie資訊

3. cookie能不能存中文?

* 在tomcat 8 之前 cookie中不能直接儲存中文資料。

* 需要將中文資料轉碼---一般採用url編碼(%e3)

* 在tomcat 8 之後,cookie支援中文資料。特殊字元還是不支援,建議使用url編碼儲存,url解碼解析

4. cookie共享問題?

1. 假設在乙個tomcat伺服器中,部署了多個web專案,那麼在這些web專案中cookie能不能共享?

* 預設情況下cookie不能共享

* setpath(string path):設定cookie的獲取範圍。預設情況下,設定當前的虛擬目錄

* 如果要共享,則可以將path設定為"/"

2. 不同的tomcat伺服器間cookie共享問題?

* setdomain(string path):如果設定一級網域名稱相同,那麼多個伺服器之間cookie可以共享

* setdomain(".baidu.com"),那麼tieba.baidu.com和news.baidu.com中cookie可以共享

概念:伺服器端會話技術,在一次會話的多次請求間共享資料,將資料儲存在伺服器端的物件中。httpsession

使用步驟:

1. 獲取httpsession物件:

2. 使用httpsession物件:

object getattribute(string name)  

void setattribute(string name, object value)

void removeattribute(string name)  

需要注意的是,session的使用是依賴於cookie的

session的注意事項

1. 當客戶端關閉後,伺服器不關閉,兩次獲取session是否為同乙個?

* 預設情況下。不是。

* 如果需要相同,則可以建立cookie,鍵為jsessionid,設定最大存活時間,讓cookie持久化儲存。

cookie c = new cookie("jsessionid",session.getid());

c.setmaxage(60*60);

response.addcookie(c);

2. 客戶端不關閉,伺服器關閉後,兩次獲取的session是同乙個嗎?

* 不是同乙個,但是要確保資料不丟失(以電商**為例,購物車內的物品不會隨著伺服器的關閉而消失)。tomcat自動完成以下工作

* session的鈍化:

* 在伺服器正常關閉之前,將session物件系列化到硬碟上

* session的活化:

* 在伺服器啟動後,將session檔案轉化為記憶體中的session物件即可。

1. session儲存資料在伺服器端,cookie在客戶端

2. session沒有資料大小限制,cookie有

3. session資料安全,cookie相對於不安全

Session和Cookie的區別

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

cookie和session的區別

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

cookie和session的區別

分類 計算機網路 2011 10 21 10 43 4785人閱讀收藏 舉報 session 瀏覽器伺服器 servlet url儲存 一 cookie機制和session機制的區別 具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。同時我...