1、概念
瀏覽器第一次給伺服器資源傳送請求,會話建立,直到有一方斷開連線便結束會話,一次會話中可以包含多次請求和響應。
2、功能
一次會話的範圍內可以進行多次請求和響應,會話過程中共享資料。
3、方式
(1)客戶端會話技術:cookie
(2)伺服器端會話技術:session
1、概念
客戶端會話技術,伺服器給客戶端,將資料儲存到客戶端
2、使用流程
(1)建立cookie物件,繫結資料
(2)傳送cookie物件new
cookie
(string name, string value)
(3)獲取cookie資料response.
addcookie
(cookie cookie)
3、實現原理cookie[
] request.
getcookies
()
基於響應頭set-cookie和請求頭cookie實現
4、生命週期
(1)預設情況下,當瀏覽器關閉後,cookie資料被銷毀
(2) 持久化儲存:
(3)具體例項setmaxage
(int seconds)
正數:將cookie資料持久化儲存寫到硬碟的檔案中, 並指定cookie存活時間
負數:預設值
零:刪除cookie資訊
5、儲存中文cookie.
setmaxage(0
);cookie.
setmaxage
(100);
//100 秒
中文資料用url編碼,不支援特殊字元
6、訪問路徑
7、共享問題//用於指定只有請求了指定的網域名稱,才會帶上該cookie
cookie.
setdomain
(".csdn.com");
//只有訪問該網域名稱下的***的這個路徑位址才會帶cookie
cookie.
setpath
("/***"
);
(1)同乙個tomcat伺服器中多個web專案
(2)不同tomcat伺服器間預設情況下cookie不能共享
setpath
(string path)
:設定cookie的獲取範圍。預設情況下,設定當前的虛擬目錄
如果要共享,則可以將path設定為"/"
8、注意setdomain
(string path)
:如果設定一級網域名稱相同,那麼多個伺服器之間cookie可以共享
setdomain
(".csdn.com"
),那麼1111.csdn.com和222.baidu.com中cookie可以共享
(1)cookie儲存資料在客戶端瀏覽器
(2)瀏覽器對於單個cookie 的大小有限制(4kb) 以及 對同乙個網域名稱下的總cookie數量也有限制(20個)
1、概念
httpsession,伺服器端會話技術,在一次會話的多次請求間共享資料,將資料儲存在伺服器端的物件中。
2、常用方法
(1) 獲取httpsession物件:
;(2) 使用httpsession物件:
3、生命週期object getattribute
(string name)
void
setattribute
(string name, object value)
void
removeattribute
(string name)
string id = session.
getid()
//獲得session會話id
session.
invalidate()
//強制刪除資料
(1)伺服器關閉時銷毀
(2) invalidate()方法
(3) 預設失效時間為30分鐘
4、注意事項
(1) 當客戶端關閉後,伺服器不關閉,兩次獲取session是否為同乙個?
(2)客戶端不關閉,伺服器關閉後,兩次獲取的session是同乙個嗎?預設情況下,不是。
如果需要相同,則可以建立cookie,鍵為jsessionid,設定最大存活時間,讓cookie持久化儲存。
cookie c =
newcookie
("jsessionid"
,session.
getid()
);c.
setmaxage(60
*60);
response.
addcookie
(c)
5、特點不是同乙個,但是要確保資料不丟失。
tomcat自動完成以下工作
session的鈍化:
在伺服器正常關閉之前,將session物件系列化到硬碟上
session的活化:
在伺服器啟動後,將session檔案轉化為記憶體中的session物件
(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...