cookie和session的區別異同

2021-09-20 15:52:46 字數 1528 閱讀 4894

1、用於儲存頁面資訊:如自動登入,記住使用者名稱

2、對於同乙個**只有一套cookie,它是以網域名稱為單位的,乙個網域名稱就是一套,數量大小有限4k-10k,同時會具有過期時間

3、js中通過document.cookie進行呼叫

a、設定:在cookie中利用document.cookie=」user=ni;expires=date;path=path;httponly;等」,通過此方法依次設定乙個值,賦值時不會進行覆蓋而是新增到之前值得末尾,但是同名的引數則會將其進行覆蓋,有多個值需要設定時利用該形式多次賦值,指定過期時間的cookie是儲存在本地的,沒有指定時為session cookie會話結束後就會將cookie刪除掉。如果設定了domain和path則只有在指定的域下面的路徑的子部分可以訪問設定這些  cookie。

b、讀取cookie:讀取時要注意讀取的值得形式是:a=1, b=2, c=3每個變數之間用逗號加空格的形式隔開,不會帶有後面的引數屬性值,所以獲取時要利用split函式。

c 、刪除cookie時只用將expires設定為-1即可。

var a=setdate(new date()+day) day可以為任意值表示將當前時間加上指定天數後的日期,該方法會自動的按照正常日曆的方式進行加天數。如:當前時間為2016-05-02,day為30時則a的值為:2016-06-1。當day很大時也是同樣的道理往前推。

4、通過http請求資源時會攜帶cookie的值(在ie678,safari中跨域請求時不能攜帶設定有過期時間的cookie),但是所有的遊覽器不允許跨域訪問。

5、通過設定httponly(只有傳送http請求時才會傳送cookie的值,js不能直接獲取到cookie)可以防止xss中的cookie劫持

cookie的缺陷是非常明顯的

1. 資料大小:作為儲存容器,cookie的大小限制在4kb左右這是非常坑爹的,尤其對於現在複雜的業務邏輯需求,4kb的容量除了儲存一些配置欄位還簡單單值資訊,對於絕大部分開發者來說真的不知指望什麼了。

2. 安全性問題:由於在http請求中的cookie是明文傳遞的(https不是),帶來的安全性問題還是很大的。

3. 網路負擔:我們知道cookie會被附加在每個http請求中,在httprequest 和httpresponse的header中都是要被傳輸的,所以無形中增加了一些不必要的流量損失。

cookie 是儲存在客戶端的,session是儲存在伺服器端的,在專案中使用cookie時要注意設定cookie的過期時間和path,特別是path用於指定該目錄下的所有檔案均可以訪問設定的cookie值。cookie就是乙個拼接的字串,一次可以設定乙個key value以及過期時間等。

session是用於儲存當前的使用者登入資訊的,存在伺服器端,由於http協議的無狀態性,無法知道當前使用者是否已經處於等陸狀態,所以需要借助cookie來儲存當前會話狀態中的登入資訊,將session的值以sessionid的形式存在cookie中,當傳送http請求時cookie會傳送到伺服器端,通過sessionid的值來判斷使用者是否處於登入狀態。當然使用者可以禁用cookie,此時則需要利用url位址重寫,即將使用者的session資訊寫到url中

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機制採用的是在伺服器端保持狀態的方案。同時我...