淺析cookie和session

關於cookiesession的區別: 程序員

  一般意義上的cookie指的是利用客戶端的技術在計算機用戶的文件夾下存儲的文件,又名硬盤cookie,通常來講是有上限的。個人cookie是存在D:\Documents and Settings\qixiaobo\Local Settings\Temporary Internet Files下面,命名規則是cookie:[用戶名]@[網站],打開後可發現一般是通過md5編碼的。而且它的換行符在windows識別爲亂碼,表示服務器應該是Linux平臺。(windows換行符是\r\n Linux換行符是\r windows

  而session,又名內存cookie,通常而言是指存放在服務器上的,當用戶訪問某個網站,網站服務器爲用戶分配一個Session ID,通常的表現形式爲JsessionID,而且也是以cookie的形式存放在客戶端,可是他的生命週期就是瀏覽器進程。也就是說當該瀏覽器進程被關閉後,從新打開後的瀏覽器訪問同一個網站的分配到的session ID將不是同一個session ID。當cookie被禁用後,編碼人員應當考慮到這種狀況,應該利用Java提供的方法重寫每個連接。由於此時瀏覽器沒法提供cookie給服務器,因此按照HTTP的無狀態,應當沒法知道該用戶的信息。可是當利用了重寫技術後,能夠將session ID附加到每個連接後面,以此來肯定用戶的信息。 瀏覽器

通常的購物網站,若是用戶是未註冊會員,應當也會記錄用戶的信息,此時雖然用戶用的是session,可是程序員會將用戶的session回寫回cookie,也就是將cookiesetMaxAge設置爲有效的長時間。也更加說明了session的表現形式是cookie 安全

關於cookiesession的安全: 服務器

  通常的記住客戶信息有以下幾種方式: cookie

 1.瀏覽器記住,這是個大瀏覽器廠商在對本身瀏覽器功能的加強,非Java Web程序員所可以利用的。 session

2.普通程序,通常是將用戶名,密碼寫在Properityies文件或者ini文件或者xml文件中。 網站

3.利用cookie,將用戶信息直接回寫給客戶端,而且大部分的網站都提供了該方式,一般的變現形式以下: 編碼


兩週內免登陸就是指的是將信息利用cookie技術回寫至客戶端。 spa


而且百卓的搜索中的最近搜索就是利用cookie來保存的,一旦禁用cookie將沒法使用該功能。

4.利用session,如上圖,若是兩週內免登陸不勾選上,表示是利用session技術記住用戶信息,一旦瀏覽器關閉了後從新打開,用戶信息依舊是須要輸入的。

總結:

正由於cookie是以文件的形式寫給瀏覽器,因此被許多人所詬病。代表其是可修改的,有部分人能夠利用技術修改cookie達到本身不付費或者少付費的目的。而且cookie會暴露一我的的隱私等。

可是session確實不太方便,由於session的生命週期是瀏覽器進程,而一般人們訪問某個網站都不是一次性的,而每次都要輸入各類信息也比較繁瑣。

所以有人發明了所謂的替代方案,將用戶信息保存在某個服務器裏,而用戶只須要記住一個用戶名和密碼便可,稱爲主密碼。大名鼎鼎的LastPass就是這樣一款基於ChromeFirefox的插件,可是實質上依舊是將客戶信息保存起來,一旦服務器被別人所控制,仍是會形成用戶信息的丟失。

就目前的互聯網來講,主流仍然是利用cookiesession一塊兒來保存用戶的信息。並不會說只採用一種。

附:百卓網 http://www.abiz.com

相關文章
相關標籤/搜索