1樓:等汪
具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。
區別:session機制:session機制是一種伺服器端的機制,伺服器使用一種類似於雜湊表的結構(也可能就是使用雜湊表)來儲存資訊。
作用:伺服器可以利用cookies或session包含資訊的任意性來篩選並經常性維護這些資訊,以判斷在http傳輸中的狀態。它們最典型的應用是判定註冊使用者是否已經登入**,使用者可能會得到提示,是否在下一次進入此**時保留使用者資訊以便簡化登入手續。
另一個重要應用場合是“購物車”之類處理。使用者可能會在一段時間內在同一家**的不同頁面中選擇不同的商品,這些資訊都會寫入cookies或session,以便在最後付款時提取資訊。總而言之,cookies和session就是能夠記錄顧客狀態的技術,儘管二者屬於不同的技術,但只要cookies能做到的,session也能做到。
2樓:從哲妍
關於兩者的一些區別,根據自己的理解和網路技術人員的分享,回答如此。
1、儲存位置不同
cookie的資料資訊存放在客戶端瀏覽器上。
session的資料資訊存放在伺服器上。
2、儲存容量不同
單個cookie儲存的資料<=4kb,一個站點最多儲存20個cookie。
對於session來說並沒有上限,但出於對伺服器端的效能考慮,session內不要存放過多的東西,並且設定session刪除機制。
3、儲存方式不同
cookie中只能保管ascii字串,並需要通過編碼方式儲存為unicode字元或者二進位制資料。
session中能夠儲存任何型別的資料,包括且不限於string,integer,list,map等。
4、隱私策略不同
cookie對客戶端是可見的,別有用心的人可以分析存放在本地的cookie並進行cookie欺騙,所以它是不安全的。
session儲存在伺服器上,對客戶端是透明對,不存在敏感資訊洩漏的風險。
5、有效期上不同
開發可以通過設定cookie的屬性,達到使cookie長期有效的效果。
session依賴於名為jsessionid的cookie,而cookie jsessionid的過期時間預設為-1,只需關閉視窗該session就會失效,因而session不能達到長期有效的效果。
6、伺服器壓力不同
cookie保管在客戶端,不佔用伺服器資源。對於併發使用者十分多的**,cookie是很好的選擇。
session是保管在伺服器端的,每個使用者都會產生一個session。假如併發訪問的使用者十分多,會產生十分多的session,耗費大量的記憶體。
7、瀏覽器支援不同
假如客戶端瀏覽器不支援cookie:
cookie是需要客戶端瀏覽器支援的,假如客戶端禁用了cookie,或者不支援cookie,則會話跟蹤會失效。關於wap上的應用,常規的cookie就派不上用場了。
運用session需要使用url地址重寫的方式。一切用到session程式的url都要進行url地址重寫,否則session會話跟蹤還會失效。
假如客戶端支援cookie:
cookie既能夠設為本瀏覽器視窗以及子視窗內有效,也能夠設為一切視窗內有效。
session只能在本視窗以及子視窗內有效。
8、跨域支援上不同
cookie支援跨域名訪問。
session不支援跨域名訪問
session和cookie的區別和聯絡
3樓:
cookie 和session 的區別:
1、cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。
2、cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙
考慮到安全應當使用session。
3、session會在一定時間內儲存在伺服器上。當訪問增多,會比較佔用你伺服器的效能
考慮到減輕伺服器效能方面,應當使用cookie。
4、單個cookie儲存的資料不能超過4k,很多瀏覽器都限制一個站點最多儲存20個cookie。
cookie 和session 的聯絡:
session是通過cookie來工作的
session和cookie之間是通過$_cookie['phpsessid']來聯絡的,通過$_cookie['phpsessid']可以知道session的id,從而獲取到其他的資訊。
在購物**中通常將使用者加入購物車的商品聯通session_id記錄到資料庫中,當使用者再次訪問是,通過sessionid就可以查詢到使用者上次加入購物車的商品。因為sessionid是唯一的,記錄到資料庫中就可以根據這個查詢了。
簡述cookies和session的區別
4樓:
1、cookie 和session的區別是:cookie資料儲存在客戶端,session資料儲存在伺服器端。
2、兩個都可以用來存私密的東西,同樣也都有有效期的說法,區別在於session是放在伺服器上的,過期與否取決於服務期的設定,cookie是存在客戶端的,過去與否可以在cookie生成的時候設定進去。
(1)、cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上 ;
(2)、cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,如果主要考慮到安全應當使用session ;
(3)、session會在一定時間內儲存在伺服器上。當訪問增多,會比較佔用你伺服器的效能,如果主要考慮到減輕伺服器效能方面,應當使用cookie ;
(4)、單個cookie在客戶端的限制是3k,就是說一個站點在客戶端存放的cookie不能3k;
(5)、所以將登陸資訊等重要資訊存放為session;其他資訊如果需要保留,可以放在cookie中。
3、cookie和session的共同之處在於:cookie和session都是用來跟蹤瀏覽器使用者身份的會話方式。
4、cookie 是一種傳送到客戶瀏覽器的文字串控制代碼,並儲存在客戶機硬碟上,可以用來在某個web站點會話間持久的保持資料。
5、ession其實指的就是訪問者從到達某個特定主頁到離開為止的那段時間。 session其實是利用cookie進行資訊處理的,當使用者首先進行了請求後,服務端就在使用者瀏覽器上建立了一個cookie,當這個session結束時,其實就是意味著這個cookie就過期了。
5樓:豆丁百科
區別:1、資料存放位置不同:
cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。
2、安全程度不同:
cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,考慮到安全應當使用session。
3、效能使用程度不同:
session會在一定時間內儲存在伺服器上。當訪問增多,會比較佔用你伺服器的效能,考慮到減輕伺服器效能方面,應當使用cookie。
4、資料儲存大小不同:
單個cookie儲存的資料不能超過4k,很多瀏覽器都限制一個站點最多儲存20個cookie,而session則儲存與服務端,瀏覽器對其沒有限制。
5、會話機制不同
session會話機制:session會話機制是一種伺服器端機制,它使用類似於雜湊表(可能還有雜湊表)的結構來儲存資訊。
cookies會話機制:cookie是伺服器儲存在本地計算機上的小塊文字,並隨每個請求傳送到同一伺服器。 web伺服器使用http標頭將cookie傳送到客戶端。
在客戶端終端,瀏覽器解析cookie並將其儲存為本地檔案,該檔案自動將來自同一伺服器的任何請求繫結到這些cookie。
6樓:匿名使用者
cookie和session都是用來跟蹤瀏覽器使用者身份的會話方式。
cookie與session的區別是, cookie資料儲存在客戶端,session資料儲存在伺服器端。簡單的說,當你登入一個**的時候,如果web伺服器端使用的是session,那麼所有的資料都儲存在伺服器上面,客戶端每次請求伺服器的時候會傳送當前會話的sessionid,伺服器根據當前sessionid判斷相應的使用者資料標誌,以確定使用者是否登入,或具有某種許可權。由於資料是儲存在伺服器上面,所以你不能偽造,但是如果你能夠獲取某個登入使用者的sessionid,用特殊的瀏覽器偽造該使用者的請求也是能夠成功的。
sessionid是伺服器和客戶端連結時候隨機分配的,一般來說是不會有重複,但如果有大量的併發請求,也不是沒有重複的可能性,我曾經就遇到過一次。登入某個**,開始顯示的是自己的資訊,等一段時間超時了,一重新整理,居然顯示了別人的資訊。
如果瀏覽器使用的是 cookie,那麼所有的資料都儲存在瀏覽器端,比如你登入以後,伺服器設定了 cookie使用者名稱(username),那麼,當你再次請求伺服器的時候,瀏覽器會將username一塊傳送給伺服器,這些變數有一定的特殊標記。伺服器會解釋為 cookie變數。所以只要不關閉瀏覽器,那麼 cookie變數便一直是有效的,所以能夠保證長時間不掉線。
如果你能夠截獲某個使用者的 cookie變數,然後偽造一個資料包傳送過去,那麼伺服器還是認為你是合法的。所以,使用 cookie被攻擊的可能性比較大。如果設定了的有效時間,那麼它會將 cookie儲存在客戶端的硬碟上,下次再訪問該**的時候,瀏覽器先檢查有沒有 cookie,如果有的話,就讀取該 cookie,然後傳送給伺服器。
如果你在機器上面儲存了某個論壇 cookie,有效期是一年,如果有人入侵你的機器,將你的 cookie拷走,然後放在他的瀏覽器的目錄下面,那麼他登入該**的時候就是用你的的身份登入的。所以 cookie是可以偽造的。當然,偽造的時候需要主意,直接copy cookie檔案到 cookie目錄,瀏覽器是不認的,他有一個index.
dat檔案,儲存了 cookie檔案的建立時間,以及是否有修改,所以你必須先要有該**的 cookie檔案,並且要從保證時間上騙過瀏覽器,曾經在學校的vbb論壇上面做過試驗,copy別人的 cookie登入,冒用了別人的名義發帖子,完全沒有問題。
更有效的方法就是自己定義一個瀏覽器,我們稱之為黑客瀏覽器,比如我們可以自己改造firefox瀏覽器,可以自定義sessionid,自定義 cookie值,那樣就可以隨心所欲了。網路安全又將面臨嚴峻的挑戰。
兩個都可以用來存私密的東西,同樣也都有有效期的說法。
區別在於。
session是放在伺服器上的,過期與否取決於服務期的設定,cookie是存在客戶端的,過去與否可以在cookie生成的時候設定進去。
1、cookie資料存放在客戶的瀏覽器上,
session資料放在伺服器上
2、cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙
考慮到安全應當使用session
3、session會在一定時間內儲存在伺服器上。當訪問增多,會比較佔用你伺服器的效能
考慮到減輕伺服器效能方面,應當使用cookie
4、單個cookie在客戶端的限制是3k,就是說一個站點在客戶端存放的cookie不能3k。
5、300個的限制我沒聽說
6、所以個人建議:
將登陸資訊等重要資訊存放為session
其他資訊如果需要保留,可以放在cookie中
cookie和session有什麼區別
cookie是個基礎的東西。是伺服器傳送到客戶端,儲存在客戶端的一小段資料。可以儲存一些配置資訊,客戶標識資訊等。使用者下次訪問這個 時,會把上次 發來的cookie一同傳送回去。session是伺服器端通過一定的手段,儲存的客戶每次會話的資訊。cookie存在客戶端,session存在伺服器端,c...
關於Hibernate的session的load方法
呼叫session.load 方法時候,首先到session中找,找不到直接建立 除非真正用到資料的時候 load方法才會進行資料庫的呼叫,那麼這個時候,如果資料庫沒有對應的id那麼方法就會跑出異常。如果說記憶體中已經存在所有的 物件,那麼不管是load放啊還是get方法,它們都會返回記憶體中的形態...
PHP中session函式的問題
session start 使用session前必須啟動會話 session views 1 賦予session值 判斷session是否存在 if isset session views else unset 函式用於釋放指定的 session 變數unset session views 也可以通...