1:cookie數據存放在客戶的瀏覽器上(客戶端),session數據放web
@1:cookie不是很安全,別人能夠分析存放在本地的cookie並進行cookie 欺騙,若是主要考慮到安全應當使用session瀏覽器
@2:session會在必定時間內保存在服務器上.當訪問增多,會比較佔用你服務器的性能,若是主要考慮到減輕服務器性能方面,應當使用cookie安全
2:單個cookie在客戶端的限制是3K,就是說一個站點在客戶端存放的cookie不能3K服務器
@3:將登錄信息等重要信息存放爲session;其餘信息若是須要保留,能夠放在 cookie 中cookie
3:session不能區分路徑,同一個用戶在訪問一個網站期間,全部的session在任何一個地方均可以訪問到.而cookie中若是設置了路徑參數,那麼同一個網站中不一樣路徑下的cookie互相是訪問不到的.cookie只能是子路徑訪問父路徑設置的cookiesession
4.分析:性能
http是無狀態的協議,客戶每次讀取web頁面時,服務器都打開新的會話,並且服務器也不會自動維護客戶的上下文信息,那麼要怎麼才能實現網上商店中的購物車呢:網站
session就是一種保存上下文信息的機制,它是針對每個用戶的,變量的值保存在服務器端,經過SessionID來區分不一樣的客 戶,session是以cookie或URL重寫 爲基礎的。加密
默認使用cookie來實現,系統會創造一個名爲JSESSIONID的輸出cookie,我 們叫作session cookie,以區分persistent cookie(咱們一般所說的cookie)spa
注意session cookie是存儲於瀏覽器內存中的,並非寫到硬盤上的,這也就是咱們剛纔看到的JSESSIONID,咱們一般情是看不到JSESSIONID的,但 是當咱們把瀏覽器的cookie禁止後,web服務器會採用URL重寫的方式傳遞Sessionid,咱們就能夠在地址欄看到 sessionid=KWJHUG6JJM65HS2K6之類的字符串。
明白了原理,咱們就能夠很容易的分辨出persistent cookie和session cookie的區別了,網上那些關於二者安全性的討論也就一目瞭然了,session cookie針對某一次會話而言,會話結束session cookie也就隨着消失了,而persistent cookie只是存在於客戶端硬盤上的一段文本(一般是加密的),並且可能會遭到cookie欺騙以及針對cookie的跨站腳本攻擊,天然不如 session cookie安全了。
5:一般session cookie是不能跨窗口使用的,當你新開了一個瀏覽器窗口進入相同頁面時,系統會賦予你一個新的sessionid,這樣咱們信息共享的目的就達不到了,此時咱們能夠先把sessionid保存在persistent cookie中,而後在新窗口中讀出來,就能夠獲得上一個窗口SessionID了,這樣經過session cookie和persistent cookie的結合咱們就實現了跨窗口的session tracking()會話跟蹤)
6:簡介: