1.存在於客戶端還是服務端
viewstate(基於webform)、cookie
*session:在服務端的儲存方式包括4中,記憶體(最常用),asp.net state service(windows服務)、資料庫、自定義狀態提供程式
2.有效時間
只要頁面關閉,其狀態就失效
包括臨時cookie和永久cookie,臨時cookie存在於瀏覽器記憶體中,只要瀏覽器關閉則臨時cookie失效,永久cookie是在cookie物件上設定了失效時間,其儲存在磁碟上,等過了失效時間即失效。cookie受客戶端瀏覽器控制,且瀏覽器能夠儲存的cookie容量是有限的,因此當瀏覽器不支援cookie、人為在瀏覽器刪除cookie或者瀏覽器cookie容量超出限制都會使cookie失效。
session的狀態有乙個超時時間,當超過該時間後,session自動無效
這個狀態在伺服器重新啟動之前都是有效的。
設定cache無效主要有兩種方式:一是設定失效時間,二是通過設定依賴項,當依賴項發生變化時,cache失效
3.可儲存的資料格式
4.客戶端與服務端互動時的關係
客戶端與服務端的互動只能傳送或操作當前頁面的檢視狀態
一般情況下,每次使用者向服務端傳送請求時會把當前站點的所有cookie發向服務端,但cookie允許設定路徑(httpcookie類包含domain和path屬性),如果設定了具體的路徑,則只有訪問該路徑時,才會把cookie發往服務端
客戶端訪問同乙個站點下的不同資源,使用的是同乙個session,服務端和客戶端通常通過cookie來進行關聯,即在客戶端儲存sessionid,每次向服務端發起請求時都會同時把sessionid(在cookie中的主鍵名為「asp.net_sessionid」)也一起帶上,這樣服務端拿到sessionid後就能找到客戶端對應的session,所以session只跟站點和客戶端相關。
所有客戶端共享同乙個cache,它是全域性的,但它有更多的控制權,如設定何時失效
5.應用場景
viewstate:只存在asp.net webform中,如每個伺服器端控制項都包含乙個檢視狀態
session:用於與指定的客戶端共同維護乙個狀態,儲存具體的狀態資訊
cache:儲存全域性的狀態資訊,且這些資訊的失效時間可以得到更好的控制
補充說明:
記憶體5種型別
1 bss段 bss段 bss segment 通常是指用來存放程式中 未初始化的全域性變數 的一塊記憶體區域。bss是英文block started by symbol的簡稱。bss段屬於靜態記憶體分配。2 資料段 資料段 data segment 通常是指用來存放程式中 已初始化的全域性變數 的...
5種型別的程式猿
在我的 旅程和程式設計冒險中。我遇到過非常多奇怪的敵人。以及陌生的盟友。我發現至少有五種不同型別的 戰士,有的人能成為並肩合作的戰友,而有些人似乎僅僅能襯托我的每個計畫。只是。他們在軟體開發這個萬神殿中也有著自己的地位。假設沒有這些不同程式設計風格 的合理搭配,那麼你的專案要麼須要非常長時間才幹完畢...
程式設計師的5種型別
在我的 旅程和程式設計經歷中,已經遭遇很多奇特的對手,還有更為奇特的盟友。我至少發現有5種 勇士,有些是出色的戰友,其他則似乎都在攪黃我的每個計畫。不過他們都在軟體開發的萬神殿上都有一席之地。如果沒有不同程式設計風格的良好組合,你可能會發現你的專案要不就是耗時過長,要不就是太不穩定或太過完美而無人去...