簡單總結下 cookie session

2022-08-22 06:54:12 字數 3406 閱讀 9213

cookies:

優點:1、實現和使用都是很簡單的

2、對於多個站點的cookies都是由瀏覽器進行管理

3、由瀏覽器來負責維護cookies的資料

缺點:  1、有大小的限制(一般都是4kb)

2、不安全,都是以簡單文字的形式儲存

3、cookies最大數目也有限制。主流瀏覽器提供將cookies的個數限制在20條。如果新cookies到來,那麼老的將被刪除。有些瀏覽器能支援到300條的cookies數。

建立cookies:

當乙個客戶端向伺服器發出請求,伺服器傳送cookies給客戶端。而相同的cookies可以被後續的請求使用。例如,如果codeproject.com將session id作為cookies儲存。當乙個客戶端首次向web伺服器請求頁面,伺服器生成session id,並將其作為cookies傳送往客戶端。

現在,所有來自相同客戶端的後續請求,它將使用來自cookies的session id,就像下面這幅展示的那樣。

瀏覽器和web伺服器以交換cookies資訊來作為響應。對不同的站點,瀏覽器會維護不同的cookies。如果乙個頁面需要cookies中的資訊,當某個url被「點選」,首先瀏覽器將搜尋本地系統的cookies的資訊,然後才轉向伺服器來獲得資訊。

建立cookies **:

如何獲取cookies 裡面的資訊:

在讀取cookies之前,首先我們需要檢查是否能找到該cookie。在讀取cookies之前,先檢查它總是乙個很好的習慣,因為瀏覽器可能禁用cookies。

if (getcookie != null)//防止瀏覽器禁用掉了cookies

持久化的cookies:這可以被稱為永久性的cookies,它被儲存在客戶端的硬碟內,直到它們失效。持久化的cookies應該被設定乙個失效時間。有時,它們會一直存在直到使用者刪除它們。持久化的cookies通常被用來為某個系統收集乙個使用者的標識資訊。

非持久化cookies:也可以被稱之為臨時性的cookies。如果沒有定義失效時間,那麼cookie將會被儲存在瀏覽器的記憶體中。我上面展示的例子就是乙個非持久的cookies。

修改乙個持久化的cookies與乙個非持久化的cookies並沒有什麼不同。它們唯一的區別是——持久化的cookies有乙個失效時間的設定。

seesion:

定義:是儲存在伺服器iis 上面的乙個會話狀態,作為乙個全域性變數,可以作為頁面傳值,資料型別都是「key-value」 字典型別儲存。

與cookies 聯絡:當客戶端(瀏覽器)傳送請求到伺服器端時,伺服器端都會判斷cookies 裡面有沒有seesionid ,如果沒有,就會建立乙個sissionid 與cookies 一起傳送到客戶端,在cookies 儲存在一起,如果有seesionid,則將這個seesionid 與服務端session 池中的sessionid 判斷,檢查有沒有匹配的seesionid ,如果有,直接將對應的cookies 傳送到客戶端。

session 特性:

1.session是一種web會話中的常用狀態之一。

2.session提供了一種把資訊儲存在伺服器記憶體中的方式。他能儲存任何資料型別,包含自定義物件。

3.每個客戶端的seesion是獨立儲存的。

4.在整個會話過程中,只要sessionid的cookie不丟失,都會儲存session資訊的。

5.session不能跨程序訪問,只能由該會話的使用者訪問。應為提取session資料的id標識是以cookie的方式儲存到訪問者瀏覽器的快取裡的。

6.當會話終止,或過期時,伺服器就清除session物件。

7.session常用於儲存登入使用者的id.

8.session儲存的資料是跨頁面全域性型的。

session原理

session是怎麼儲存,提取的?

1.在伺服器端有乙個session池,用來儲存每個使用者提交session中的資料,session對於每乙個客戶端(或者說瀏覽器例項)是「人手乙份」,使用者首次與web伺服器建立連線的時候,伺服器會給使用者分發乙個sessionid作為標識。sessionid是乙個由24個字元組成的隨機字串。使用者每次提交頁面,瀏覽器都會把這個sessionid包含在http頭中提交給web伺服器,這樣web伺服器就能區分當前請求頁面的是哪乙個客戶端,而這個sessionid是一cookie的方式儲存的在客戶端的記憶體中的,如果想要得到session池中的資料,伺服器就會根據客戶端提交的唯一sessionid標識給出相應的資料返回。

ps:面試常問:如果客戶端禁用了cookie,session 還能用嗎?

回答:可以,雖然session 與cookies 是通過seesionid 儲存到cookies 裡面去的,cookies消失,sessionid 也沒有了,seesion 就不能檢查到客戶端使用者的訪問記錄,但是可以通過url 重寫的方式進行seesionid  客戶端與伺服器端進行互動,或者用cookies munging (當使用者向伺服器請求乙個頁面,伺服器編碼「session id」然後將它們加入到頁面的每乙個href 的鏈結中。當使用者點選乙個鏈結,asp.net解碼session id並傳遞它給使用者請求的頁面。現在,正在被請求的頁面就可以檢索到任何的session變數。這一切都將平滑地發生——當asp.net檢測到使用者瀏覽器不支援cookies時)

由於本人經驗不足,如果說錯的地方,希望大大的指出,不勝感激!!

簡單總結下webservice

簡單總結下webservice 微服務 類似webservice 主要針對分布式開發 webservice的技術標準 傳統 xml 資料格式互動 方法的遠端呼叫 與平台無關 跟作業系統無關性 與語言無關 通訊協議 soap http xml object access protocal wsdl w...

排序總結(下)

一.堆排序 1 思想 基本原理也是選擇排序,只是不在使用遍歷的方式查詢無序區間的最大的數,而是通過堆來選擇無序區間的最大的數。注意 排公升序要建大堆 排降序要建小堆。2 實現 public static void heapsort int array public static void creat...

總結下吧 2008 05 10 09 11

直接把上交的總結扔上來了.gdcpc2008總結分割線 最後一場正式比賽結束了,結果不如預想中的好.不過走出賽場,倒也沒多少遺憾的感覺.要說遺憾,去年已經夠遺憾了.而且就自己來說,這次比賽還算是發揮得不錯.先流水帳一下過程吧 拿到題目,xj看a,b,c,yzx看d,e,f,我看g,h,i,j.a題 ...