1. 程式人生 > >深入理解cookie與sessionID,禁用cookie後的URL重用傳值

深入理解cookie與sessionID,禁用cookie後的URL重用傳值

cookie自我理解就是記錄瀏覽器的一種行為儀器,

cookie作用:

1.可以在客戶端上儲存使用者資料,起到簡單的快取和使用者身份識別等作用。

2.儲存使用者的登陸狀態,使用者進行登陸,成功登陸後,伺服器生成特定的cookie返回給客戶端
,客戶端下次訪問該域名下的任何頁面,將該cookie的資訊傳送給伺服器,伺服器經過檢驗,
來判斷使用者是否登陸。

3.記錄使用者的行為。

cookie弊端:

1.增加流量消耗,每次請求都需要帶上cookie資訊。

2.安全性隱患,cookie使用明文傳輸。如果cookie被人攔截了,那人就可以取得所有的session資訊。

3.Cookie數量和長度的限制。每個domain最多隻能有20條cookie,每個cookie長度不能超過4KB,否則會被截掉。

替代解決方案:

具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在服務
器端保持狀態的方案。同時我們也看到,由於採用伺服器端保持狀態的方案在客戶端也需要
儲存一個標識,所以session機制可能需要藉助於cookie機制來達到儲存標識的目的,但實
際上它還有其他選擇。

 cookie機制。正統的cookie分發是通過擴充套件HTTP協議來實現的,伺服器通過在HTTP的響應
頭中加上一行特殊的指示以提示瀏覽器按照指示生成相應的cookie。

而cookie的使用是由瀏覽器按照一定的原則在後臺自動傳送給伺服器的


 cookie的內容主要包括:名字,值,過期時間,路徑和域。路徑與域一起構成cookie的作
用範圍。若不設定過期時間,則表示這個cookie的生命期為瀏覽器會話期間,關閉瀏覽器窗
口,cookie就消失。

儲存這個session id的方式可以採用cookie,這樣在互動過程中瀏覽器可以自動的按照規則
把這個標識發揮給伺服器。一般這個cookie的名字都是類似於SEEESIONID。但cookie可以被
人為的禁止,則必須有其他機制以便在cookie被禁止時仍然能夠把session id傳遞迴伺服器

       經常被使用的一種技術叫做URL重寫,就是把session id直接附加在URL路徑的後面
。還有一種技術叫做表單隱藏欄位。就是伺服器會自動修改表單,新增一個隱藏欄位,以便
在表單提交時能夠把session id傳遞迴伺服器。


給你舉個更生動的例子,以前大學的時候,經常去大卡司去喝奶茶,每喝一杯,都可以得到
一個印花(第一次喝的時候他會給你個積分卡片),集齊6個印花之後,就可以免費獲得一杯
奶茶。這樣子,印花的資訊是儲存在客戶的積分卡上,你如果不懷好意的話,就自己搞幾個
神似的印花去騙奶茶喝吧。哈哈,這樣子是不是更符合在客戶端端保持狀態。而拿銀行卡去
銀行取錢,我們的卡只需要儲存一個卡號,更多的資訊是儲存在伺服器中,這樣也比較符合
伺服器端保持狀態。希望能幫到你。

    可能是我的描述不夠貼切,積分卡和存摺是類似的,使用者的存取資訊是儲存在存摺上的
,存摺又是在客戶手裡(客戶端)可能現在很少有人用存摺了,或存摺已經被銀行取消掉了

<a href="/Blog/<%=response.encodeRedirectURL("login.jsp")%>" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-exit'" style="width: 150px;">登入頁面</a>