2015年1月11日 星期日

自學筆記 no.2 -認識Session和Cookie

(一)SessionCookie他們之間有什麼不同?

前導觀念

Http是一個沒有狀態(Stateless)的協定

State 目前的狀態


Stateless 無狀態
Client端對Server發出要求(Request)都是各自獨立,前面要求不影響後面的回應。
範例:
先送出一個Request選定一個標錯價的螢幕,再送出一個Request要結帳,但是上一個選定的Request並不會被儲存,也就是說Server不會記得你剛剛做了什麼。

Stateful 充滿狀態的
能記錄現在Client端與Server端之間的運作,知其做了什麼事件。

進入正題

Cookie

Cookies的生命週期起於瀏覽器被執行時 , 而消滅於瀏覽器結束執行時。(生命週期可設定)
文字檔,存於記憶體與硬碟空間內(Client端),通常記錄網站的個人喜好設定
與Session id,但經過XSS的攻擊後,我們更需要關注其安全性,移出重要資料,不放入其中。
並把HttpOnly屬性設為true,這樣除了HTTP協定以外的東西就無法存取這個Cookie了!



Session

Session有始有終的一系列動作/消息,比如打電話是從拿起電話撥號到掛斷電話這中間的一系列過程可以稱之為一個session。

使用session id來標識session,session id由服務器負責產生,保證隨機性與唯一性,相當於一個隨機密鑰,避免在握手或傳輸中暴露用戶真實密碼。所以說,重要資料就會選擇使用Session,比如說是否登入的驗證。

比較特別的是Session是跟著瀏覽器產生,所以當關掉瀏覽器或是過了20分鐘之後(也可以設定久一點)就會被拋棄。


具體來說

cookie採用的是在客戶端保持狀態的方案,而session機制採用是在服務器端保持狀態的方案。

整理來源:
             Cookie 與 Session    

             Cookies的生命週期


            Session和Cookie的區別

張忠謀:
不再為考試、學位而讀書,要為興趣、將來的工作學習
畢業開始才是真的學習,99%的知識在於畢業後,開始為自己的興趣做累積吧!

沒有留言:

張貼留言