原文地址:http://blog.csdn.net/zhoufoxcn/article/details/1495822
Session 會話
l 區分客戶端,不區分頁面
l 數據量會隨着客戶端(併發)數量的增多,而增多
l 服務器端存儲什麼:數據存儲在服務器端(InProc,StateServer,SqlServer)
l 客戶端存儲什麼:客戶端存儲的是SessionID
l 有過期策略
l 適用場合:與用戶相關的數據,購物車,用戶帳號,
Application狀態
l 全局數據,所有客戶端共享:不區分客戶端,不區分頁面
l 服務器端存儲什麼:數據存儲在服務器端(服務器進程內)
l 客戶端存儲什麼:客戶端不存儲任何與Application狀態數據
l 可能有多線程併發訪問的問題,需要同步(Lock/Unlock)
l 適用場合:全局性的數據,在Application_Start內初始化,然後在其他頁面中訪問
ViewState視圖狀態
l 區分客戶端,區分頁面
l 服務器端存儲什麼:數據在服務器和客戶端(頁面數據)來回穿梭
l 客戶端存儲什麼:數據在服務器和客戶端(頁面數據)來回穿梭
l 適用場合:單一頁面上的臨時性數據,用於用戶和一個頁面之間的來回交互。
l 安全性比較低
頁面上的實例字段
l 區分客戶端,區分頁面,而且區分前後不同的請求
l 生存期極短,只在服務器處理頁面的過程中有效
l 適用場合範圍較窄
靜態字段
l 全局數據,所有客戶端共享:不區分客戶端,不區分頁面
l 服務器端存儲什麼:數據存儲在服務器端(服務器進程內)
l 客戶端存儲什麼:客戶端不存儲任何static狀態數據
l 可能有多線程併發訪問的問題,同步需要自己編寫代碼(不如Application方便)
l 適用場合:全局性的數據,在任何需要的地方內初始化,然後在其他頁面中訪問
查詢字符串 Query String
l 區分客戶端,在兩個相鄰的頁面之間共享(通過地址欄上數據)
l 服務器端存儲什麼:數據在服務器和客戶端瀏覽器地址欄中交互
l 客戶端存儲什麼:數據在服務器和客戶端瀏覽器地址欄中交互
l 適用場合:作爲數據查詢的分離關鍵字,支持copy或存儲。喪失安全性; 異構網站系統(JSP, ASP, PHP)與ASP.NET頁面集成
Input
l 區分客戶端,在兩個相鄰的頁面之間共享(通過地址欄上數據)
l 服務器端存儲什麼:數據從客戶端頁面上post給服務器
l 客戶端存儲什麼:數據從客戶端頁面上post給服務器
l 適用場合:異構網站系統(JSP, ASP, PHP)與ASP.NET頁面集成
Cookie
l 區分客戶端,不區分頁面
l 服務器端存儲什麼:服務器不保存Cookie數據
l 客戶端存儲什麼:存放Cookie數據
l 有過期策略
l 適用場合:異構網站系統(JSP, ASP, PHP)與ASP.NET頁面集成,以及長期保存的數據