1. 程式人生 > >Session 與Cookie 的區別與聯絡總結

Session 與Cookie 的區別與聯絡總結

Session與Cookie區別

  • Cookie和Session都是會話技術,Cookie是執行在客戶端,Session是執行在伺服器端。
  • Cookie有安全隱患,通過攔截或本地檔案找得到你的cookie後可以進行攻擊。Cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,考慮到安全應當使用session。
  • Session是儲存在伺服器端上會存在一段時間才會消失,如果session過多會增加伺服器的壓力。當訪問增多,會比較佔用你伺服器的效能,考慮到減輕伺服器效能方面,應當使用cookie。
  • Cookie有大小限制以及瀏覽器在存cookie的個數也有限制,Session是沒有大小限制和伺服器的記憶體大小有關。單個Cookie儲存的資料不能超過4K,很多瀏覽器都限制一個站點最多儲存20個Cookie。
  • 可以考慮將登陸資訊等重要資訊存放為session,其他資訊如果需要保留,可以放在cookie中。

Session與Cookie聯絡

Cookies是屬於Session物件的一種。但有不同,Cookies不會佔伺服器資源,是存在客服端記憶體或者一個cookie的文字檔案中;而“Session”則會佔用伺服器資源。所以,儘量不要使用Session,而使用Cookies。但是我們一般認為cookie是不可靠的,session是可靠地,但是目前很多著名的站點也都以來cookie。有時候為了解決禁用cookie後的頁面處理,通常採用url重寫技術,呼叫session中大量有用的方法從session中獲取資料後置入頁面。

Cookie最典型的應用

  1. 判斷使用者是否登陸過網站,以便下次登入時能夠直接登入。如果我們刪除cookie,則每次登入必須從新填寫登入的相關資訊。
  2. 另一個重要的應用是“購物車”中類的處理和設計。使用者可能在一段時間內在同一家網站的不同頁面選擇不同的商品,可以將這些資訊都寫入cookie,在最後付款時從cookie中提取這些資訊,當然這裡面有了安全和效能問題需要我們考慮了。