cookie和session的區別

2021-09-24 12:57:39 字數 2460 閱讀 4871

預備知識

一、cookie的簡單介紹

指web應用伺服器為了辨別使用者身份、進行 session 跟蹤而儲存在客戶端上的資料,該資料通常經過了加密;

瀏覽器訪問web伺服器某個資源時,web伺服器在http響應訊息頭中附帶傳給瀏覽器的資訊,該資訊在客戶端瀏覽器儲存;當客戶端瀏覽器再次請求該資源時,會在在http請求訊息中增加cookie請求頭字段將cookie再回傳給web伺服器。

瀏覽器儲存某個cookie後,在每次訪問該web伺服器時都會在http請求頭中將這個cookie回傳給web伺服器。

乙個cookie只能標識一種資訊,它至少含有乙個標識該資訊的名稱(name)和設定值。

乙個web站點可以給乙個瀏覽器傳送多個cookie,乙個瀏覽器也可以儲存多個web站點提供的cookie.

cookie不是內建物件

二、cookie的原理

web伺服器通過在http響應資訊中增加set-cookie響應頭字段將cookie資訊傳送給瀏覽器,瀏覽器再次向web伺服器傳送請求時,在http請求訊息中增加cookie請求頭字段將cookie再回傳給web伺服器。

三、cookie中常用方法

setpath(string path):cookie作用範圍預設情況下只能作用於當前目錄和當前目錄的子目錄,但不能作用於當前目錄的上及上級目錄,如果需要在上級目錄中獲取cookie,需要設定cookie作用範圍:其中/代表web站點的根目錄,request.getcontextpath();

四、步驟

1、 建立cookie物件

cookie cookie=new cookie(name,值);
2、 呼叫response方法將cookie傳給客戶端

response.addcookie(cookie);
五、cookie的缺點

安全性差(多人用乙個電腦);

cookie資訊是可以刪除的();

cookie只能儲存字串型別的內容。

主要內容

1、 session其實指的就是訪問者從到達某個特定主頁到離開為止的那段時間。

session其實是利用cookie進行資訊處理的,當使用者首先進行了請求後,服務端就在使用者瀏覽器上建立了乙個cookie,當這個session結束時,其實就是意味著這個cookie就過期了。

2、cookie和session的共同之處在於:cookie和session都是用來跟蹤瀏覽器使用者身份的會話方式。

3、cookie 和session的區別是:cookie資料儲存在客戶端,session資料儲存在伺服器端。

舉個例子說明來說

當登入乙個**的時候,如果伺服器端使用的是session,那麼所有的資料都儲存在伺服器端,客戶端每次請求伺服器的時候會傳送當前會話的sessionid,伺服器則是根據sessionid判斷相應的使用者資料是否具有該次傳送的請求的許可權。

由於資料儲存在伺服器上,所以你不能偽造;但是,如果你獲取到某個登入使用者的sessionid,通過瀏覽器偽造該使用者的請求也是可以實現的。

如果瀏覽器使用的是cookie,那麼所有的資料都儲存在瀏覽器端,比如你登入以後,伺服器設定了cookie使用者名稱,那麼當你再次請求伺服器的時候,瀏覽器會將使用者名稱一塊傳送給伺服器,這些變數有一定的特殊標記。伺服器會解釋為cookie變數,只要不關閉瀏覽器,cookie變數一直是有效的,所以能夠保證長時間不掉線。

如果能夠獲取某個使用者的 cookie變數,然後偽造乙個資料傳送過去,那麼伺服器還是認為是合法的。所以使用 cookie被攻擊的可能性比較大。

如果設定了的有效時間,那麼它會將 cookie儲存在客戶端的硬碟上,下次再訪問該**的時候,瀏覽器先檢查有沒有 cookie,如果有的話,就讀取該 cookie,然後傳送給伺服器。如果你在機器上面儲存了某個論壇的 cookie,有效期是乙個月,如果有人入侵你的機器,將你的 cookie拷走,然後放在他的瀏覽器的目錄下面,那麼他登入該**的時候就是用你的的身份登入的。所以 cookie是可以偽造的。

4、總結一下

兩個都可以用來存私密的東西,同樣都有有效期的說法,區別在於session是放在伺服器上的,過期與否取決於服務期的設定,cookie是存在客戶端的,過期與否可以在cookie生成的時候設定進去。

(1)cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上

(2)cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,如果主要考慮到安全應當使用session

(3)session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用你伺服器的效能,如果主要考慮到減輕伺服器效能方面,應當使用cookie

(4)單個cookie在客戶端的限制是3k,就是說乙個站點在客戶端存放的cookie不能3k。

所以:將登陸資訊等重要資訊存放為session;其他資訊如果需要保留,可以放在cookie中

Session和Cookie的區別

session和cookie的區別 1 儲存的位置不同 session儲存在伺服器端的記憶體中,占用伺服器資源。cookie是儲存在客戶端。可以是瀏覽器中或者是檔案中 2 儲存的時間不同 session是關閉當前會話相關瀏覽器後自動清空。cookie是根據過期時間而會有不同。3 安全性不同 sess...

cookie和session的區別

一 cookie機制和session機制的區別 具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。同時我們也看到,由於在伺服器端保持狀態的方案在客戶端也需要儲存乙個標識,所以session機制可能需要借助於cookie機制來達到儲存標識的目...

cookie和session的區別

分類 計算機網路 2011 10 21 10 43 4785人閱讀收藏 舉報 session 瀏覽器伺服器 servlet url儲存 一 cookie機制和session機制的區別 具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。同時我...