其中cookie是儲存在客戶端的一組資料,主要用來儲存使用者名稱等個人資訊。
session
session用來儲存每乙個使用者的專有資訊
session的生存期是使用者持續請求時間加上一段時間(一般是20分鐘左右)
session資訊是儲存在web伺服器記憶體中的,儲存資料量可大可小
由於使用者停止使用應用程式之後它仍在記憶體中存留一段時間,因此這種方法效率較低
**:session[「userid」]=」test」;
string username=session[「userid」].tostring();
cookie
cookie用來儲存客戶瀏覽器請求伺服器頁面的請求資訊
我們可以存放非敏感的使用者資訊,儲存時間可以根據需要設定
如果沒有設定cookie失效日期,它的生命週期儲存到關閉瀏覽器為止
cookie物件的expires屬性設定為minvalue表示永不過期
cookie儲存的資料量受限制,大多數的瀏覽器為4k因此不要存放大資料
由於並非所有的瀏覽器都支援cookie,資料將以明文的形式儲存在客戶端
**:resopnse.cookies[「userid」]=」test」;
string username= resopnse.cookies [「userid」].tostring();
cache
cache用於在http請求期間儲存頁面或者資料
cache的使用可以大大的提高整個應用程式的效率
它允許將頻繁訪問的伺服器資源儲存在記憶體中,當使用者發出相同的請求後,伺服器不是再次處理而是將cache中儲存的資料直接返回給使用者
可以看出cache節省的是時間—伺服器處理時間
cache例項是每乙個應用程式專有的,其生命週期==該應用程式週期
應用程式重啟將重新建立其實例
注意:如果要使用快取的清理、到期管理、依賴項等功能必須使用insert 或者add方法方法新增資訊
**:cache[」id」]=」cc」;或者cache.insert(「id」,」test」);
string id =cache[「id」].tostring();
通常使用最頻繁的是session,那麼session和cache又有什麼區別呢?
session快取和cache快取的區別。
(1)最大的區別是cache提供快取依賴來更新資料,而session只能依靠定義的快取時間來判斷快取資料是否有效。
(2)即使應用程式終止,只要cache.add方法中定義的快取時間未過期,下次開啟應用程式時,快取的資料依然存在。而session快取只是存在於一次會話中,會話結束後,資料也就失效了。
(3)session容易丟失,導致資料的不確定性,而cache不會出現這種情況。
(4)由於session是每次會話就被載入,所以不適宜存放大量資訊,否則會導致伺服器的效能降低。而cache則主要用來儲存大容量資訊,如資料庫中的多個表。
(5)session目前只能儲存在記憶體中,對其效能有影響。
session cookie 和token登入驗證
最近研究了下基於token的身份驗證,並將這種機制整合在個人專案中。現在很多 的認證方式都從傳統的seesion cookie轉向token校驗。對比傳統的校驗方式,token確實有更好的擴充套件性與安全性。傳統的session cookie身份驗證 由於http是無狀態的,它並不記錄使用者的身份。...
session cookie 和token登入驗證
最近研究了下基於token的身份驗證,並將這種機制整合在個人專案中。現在很多 的認證方式都從傳統的seesion cookie轉向token校驗。對比傳統的校驗方式,token確實有更好的擴充套件性與安全性。傳統的session cookie身份驗證 由於http是無狀態的,它並不記錄使用者的身份。...
session cookie和token的區別
web應用程式是使用http協議來傳送資料的。而http是無狀態的協議。所以一旦http報文交換完成,客戶端和伺服器端就會誰也不認識誰了,這意味著伺服器無法從連線上跟蹤會話。即當使用者a購買了一件商品並放入購物車中,當再次購買該商品時,伺服器已經無法判斷是哪個使用者的會話了,所以才必須引入一種機制用...