5種型別快取比較說明

2022-03-21 15:13:28 字數 1286 閱讀 9142

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種 勇士,有些是出色的戰友,其他則似乎都在攪黃我的每個計畫。不過他們都在軟體開發的萬神殿上都有一席之地。如果沒有不同程式設計風格的良好組合,你可能會發現你的專案要不就是耗時過長,要不就是太不穩定或太過完美而無人去...