Session和Cookie的學習

2021-09-01 12:47:55 字數 1540 閱讀 7221

cookie通過在客戶端記錄資訊確定使用者身份,session通過在伺服器端記錄資訊確定使用者身份。

首先說明一下session和cookie使用時的網路協議狀態

協議是指計算機通訊網路中兩台計算機之間進行通訊所必須共同遵守的規定或規則,超文字傳輸協議(http)是一種通訊協議,它允許將超文字標記語言(html)文件從web伺服器

傳送到客戶端的瀏覽器。

http協議是無狀態的協議。一旦資料交換完畢,客戶端與伺服器端的連線就會關閉,再次交換資料需要建立新的連線。這就意味著伺服器無法從連線上跟蹤會話。

cookie就是在伺服器給客戶端傳送的乙個驗證資訊,在客戶端第二次訪問伺服器的時候,伺服器可以根據cookie驗證客戶資訊。伺服器還可以根據需要修改cookie的內容。

path:

如果乙個主頁面建立了乙個cookie,那個這個頁面中的子頁面都可以使用這個cookie。

如果主頁面要使用分頁面的cookie需要我們要把cookies的path屬性設定成「/」。

domain:

比如: 頁面中發出乙個cookie,domain屬性預設就是www.baidu.com ,可以由程式設定此屬性為需要的值。值是網域名稱,比如www.china.com。這是對path路徑屬性的乙個延伸。如果我們想讓 www.china.com能夠訪問bbs.china.com設定的cookies,該怎麼辦? 我們可以把 domain屬性設定成「china.com」, 並把path屬性設定成「/」。

session

客戶端瀏覽器訪問伺服器的時候,伺服器把客戶端資訊以某種形式記錄在伺服器上。這就是session。

session的唯一標識sessionid是由cookie提供給伺服器的。

如果客戶端禁用了cookie,通常有兩種方法實現session而不依賴cookie。

1)url重寫,就是把sessionid直接附加在url路徑的後面。

2)表單隱藏字段。就是伺服器會自動修改表單,新增乙個隱藏字段,以便在表單提交時能夠把sessionid傳遞歸伺服器。比如:

session共享: 對於多**(同一父域不同子域)單伺服器,我們需要解決的就是來自不同**之間sessionid的共享。由於網域名稱不同(aaa.test.com和bbb.test.com),而sessionid又分別儲存在各自的cookie中,因此伺服器會認為對於兩個子站的訪問,是來自不同的會話。解決的方法是通過修改cookies的網域名稱為父網域名稱達到cookie共享的目的,從而實現sessionid的共享。帶來的弊端就是,子站間的cookie資訊也同時被共享了。

總結1、cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。

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

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

4、單個cookie儲存的資料不能超過4k,很多瀏覽器都限制乙個站點最多儲存20個cookie。

5、可以考慮將登陸資訊等重要資訊存放為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機制採用的是在伺服器端保持狀態的方案。同時我...