Cookie和Session小知識

2021-10-03 14:17:22 字數 3324 閱讀 9884

1、概念

瀏覽器第一次給伺服器資源傳送請求,會話建立,直到有一方斷開連線便結束會話,一次會話中可以包含多次請求和響應。

2、功能

一次會話的範圍內可以進行多次請求和響應,會話過程中共享資料。

3、方式

(1)客戶端會話技術:cookie

(2)伺服器端會話技術:session

1、概念

客戶端會話技術,伺服器給客戶端,將資料儲存到客戶端

2、使用流程

(1)建立cookie物件,繫結資料

new

cookie

(string name, string value)

(2)傳送cookie物件

response.

addcookie

(cookie cookie)

(3)獲取cookie資料

cookie[

] request.

getcookies

()

3、實現原理

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

4、生命週期

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

(2) 持久化儲存:

setmaxage

(int seconds)

正數:將cookie資料持久化儲存寫到硬碟的檔案中, 並指定cookie存活時間

負數:預設值

零:刪除cookie資訊

(3)具體例項

cookie.

setmaxage(0

);cookie.

setmaxage

(100);

//100 秒

5、儲存中文

中文資料用url編碼,不支援特殊字元

6、訪問路徑

//用於指定只有請求了指定的網域名稱,才會帶上該cookie

cookie.

setdomain

(".csdn.com");

//只有訪問該網域名稱下的***的這個路徑位址才會帶cookie

cookie.

setpath

("/***"

);

7、共享問題

(1)同乙個tomcat伺服器中多個web專案

預設情況下cookie不能共享

setpath

(string path)

:設定cookie的獲取範圍。預設情況下,設定當前的虛擬目錄

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

(2)不同tomcat伺服器間

setdomain

(string path)

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

setdomain

(".csdn.com"

),那麼1111.csdn.com和222.baidu.com中cookie可以共享

8、注意

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

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

1、概念

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

2、常用方法

(1) 獲取httpsession物件:

;(2) 使用httpsession物件:

object getattribute

(string name)

void

setattribute

(string name, object value)

void

removeattribute

(string name)

string id = session.

getid()

//獲得session會話id

session.

invalidate()

//強制刪除資料

3、生命週期

(1)伺服器關閉時銷毀

(2) invalidate()方法

(3) 預設失效時間為30分鐘

4、注意事項

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

預設情況下,不是。

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

cookie c =

newcookie

("jsessionid"

,session.

getid()

);c.

setmaxage(60

*60);

response.

addcookie

(c)

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

不是同乙個,但是要確保資料不丟失。

tomcat自動完成以下工作

session的鈍化:

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

session的活化:

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

5、特點

(1) session用於儲存一次會話的多次請求的資料,存在伺服器端

(2) session可以儲存任意型別,任意大小的資料

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

2、session無資料大小限制,cookie具有資料大小限制

3、session資料安全,cookie相對於session不安全(儲存於客戶端)

php的cookie和session小應用

session start 假設使用者登入成功獲得了以下使用者資料 userinfo array uid 10000,name spark email spark imooc.com man age 18 header content type text html charset utf 8 將使用...

cookie和session和token是什麼?

什麼是session?什麼是cookie?什麼是token?1 cookie?由於http是一種無狀態協議,伺服器沒有辦法單單從網路連線上面知道訪問者的身份,為了解決這個問題,就誕生了cookie cookie實際上是一小段的4k文字資訊。客戶端請求伺服器,如果伺服器需要記錄該使用者狀態,就使用re...

Session和Cookie的區別

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