1. 程式人生 > >APPlication,Session和Cookie的區別

APPlication,Session和Cookie的區別

www expire 日期 unlock 一段時間 enter 應用程序 ica art

方法

信息量大小

保存時間

應用範圍

保存位置

Application

任意大小

整個應用程序的生命期

所有用戶

服務器端

Session

小量,簡單的數據

用戶活動時間+一段延遲時間(一般為20分鐘)

單個用戶

服務器端

Cookie

小量,簡單的數據

可以根據需要設定

單個用戶

客戶端

1.Application對象
Application用於保存所有用戶的公共的數據信息,如果使用Application對象,一個需要考慮的問題是任何寫操作都要在Application_OnStart事件(global.asax)中完成.盡管使用Application.Lock和Applicaiton.Unlock方法來避免寫操作的同步,但是它串行化了對Application對象的請求,當網站訪問量大的時候會產生嚴重的性能瓶頸.因此最好不要用此對象保存大的數據集合

2.Session對象
Session用於保存每個用戶的專用信息.她的生存期是用戶持續請求時間再加上一段時間(一般是20分鐘左右).Session中的信息保存在Web服務器內容中,保存的數據量可大可小.當Session超時或被關閉時將自動釋放保存的數據信息.由於用戶停止使用應用程序後它仍然在內存中保持一段時間,因此使用Session對象使保存用戶數據的方法效率很低.對於小量的數據,使用Session對象保存還是一個不錯的選擇.使用Session對象保存信息的代碼如下:

技術分享//存放信息
技術分享Session["username"]="zhouhuan";
技術分享//讀取數據
技術分享string UserName=Session["username"].ToString();

3.Cookie對象
Cookie用於保存客戶瀏覽器請求服務器頁面的請求信息,程序員也可以用它存放非敏感性的用戶信息,信息保存的時間可以根據需要設置.如果沒有設置Cookie失效日期,它們僅保存到關閉瀏覽器程序為止.如果將Cookie對象的Expires屬性設置為Minvalue,則表示Cookie永遠不會過期.Cookie存儲的數據量很受限制,大多數瀏覽器支持最大容量為4096,因此不要用來保存數據集及其他大量數據.由於並非所有的瀏覽器都支持Cookie,並且數據信息是以明文文本的形式保存在客戶端的計算機中,因此最好不要保存敏感的,未加密的數據,否則會影響網站的安全性.使用Cookie對象保存的代碼如下:

技術分享//存放信息
技術分享Response.Cookies["UserID"].Value="0001";
技術分享//讀取信息
技術分享string UserID=Response.Cookies["UserID"].Value;

APPlication,Session和Cookie的區別