Cookie與Session的區別在於資料存放位置不同、安全程度不同、效能使用程度不同和資料儲存大小不同。
1、資料存放位置不同
cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。
2、安全程度不同
cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙,考慮到安全應當使用session。
3、效能使用程度不同
session會在一定時間內儲存在伺服器上。當訪問增多,會比較佔用你伺服器的效能,考慮到減輕伺服器效能方面,應當使用cookie。
4、資料儲存大小不同
單個cookie儲存的資料不能超過4K,很多瀏覽器都限制一個站點最多儲存20個cookie,而session則儲存與服務端,瀏覽器對其沒有限制。
本來 session 是一個抽象概念,開發者為了實現中斷和繼續等操作,將 user agent 和 server 之間一對一的互動,抽象為“會話”,進而衍生出“會話狀態”,也就是 session 的概念。
而 cookie 是一個實際存在的東西,http 協議中定義在 header 中的欄位。可以認為是 session 的一種後端無狀態實現。
而我們今天常說的 “session”,是為了繞開 cookie 的各種限制,通常藉助 cookie 本身和後端儲存實現的,一種更高階的會話狀態實現。
所以 cookie 和 session,你可以認為是同一層次的概念,也可以認為是不同層次的概念。具體到實現,session 因為 session id 的存在,通常要藉助 cookie 實現,但這並非必要,只能說是通用性較好的一種實現方案。
Cookie與Session的區別在於資料存放位置不同、安全程度不同、效能使用程度不同和資料儲存大小不同。
1、資料存放位置不同
cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。
2、安全程度不同
cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙,考慮到安全應當使用session。
3、效能使用程度不同
session會在一定時間內儲存在伺服器上。當訪問增多,會比較佔用你伺服器的效能,考慮到減輕伺服器效能方面,應當使用cookie。
4、資料儲存大小不同
單個cookie儲存的資料不能超過4K,很多瀏覽器都限制一個站點最多儲存20個cookie,而session則儲存與服務端,瀏覽器對其沒有限制。
本來 session 是一個抽象概念,開發者為了實現中斷和繼續等操作,將 user agent 和 server 之間一對一的互動,抽象為“會話”,進而衍生出“會話狀態”,也就是 session 的概念。
而 cookie 是一個實際存在的東西,http 協議中定義在 header 中的欄位。可以認為是 session 的一種後端無狀態實現。
而我們今天常說的 “session”,是為了繞開 cookie 的各種限制,通常藉助 cookie 本身和後端儲存實現的,一種更高階的會話狀態實現。
所以 cookie 和 session,你可以認為是同一層次的概念,也可以認為是不同層次的概念。具體到實現,session 因為 session id 的存在,通常要藉助 cookie 實現,但這並非必要,只能說是通用性較好的一種實現方案。