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頁面整合