Asp.net 中ViewState,cookie,ession,pplication,cache的比較

来源:http://www.cnblogs.com/yyg1986/archive/2017/12/17/8053454.html
-Advertisement-
Play Games

Asp.net 中的狀態管理維護包含ViewState,cookie,session,application,cache五種方式,以下是它們的一些比較: 1.存在於客戶端還是服務端 客戶端: viewstate、cookie 服務端: session、application、cache *sessi ...


Asp.net 中的狀態管理維護包含ViewState,cookie,session,application,cache五種方式,以下是它們的一些比較:

1.存在於客戶端還是服務端

  • 客戶端:

viewstate、cookie

  • 服務端:

session、application、cache

*session:在服務端的存儲方式包括4中,記憶體(最常用),ASP.NET State Service(Windows服務)、資料庫、自定義狀態提供程式

2.有效時間

  • viewstate:

只要頁面關閉,其狀態就失效

  • cookie:

      包括臨時cookie和永久cookie,臨時cookie存在於瀏覽器記憶體中,只要瀏覽器關閉則臨時cookie失效,永久cookie是在cookie對象上設置了失效時間,其保存在磁碟上,等過了失效時間即失效。cookie受客戶端瀏覽器控制,且瀏覽器能夠存儲的cookie容量是有限的,因此當瀏覽器不支持cookie、人為在瀏覽器刪除cookie或者瀏覽器cookie容量超出限制都會使cookie失效。

  • session:

session的狀態有一個超時時間,當超過該時間後,session自動無效

  • application:

這個狀態在伺服器重新啟動之前都是有效的。

  • cache:

設置cache無效主要有兩種方式:一是設置失效時間,二是通過設置依賴項,當依賴項發生變化時,cache失效

3.可保存的數據格式

  • viewstate:字元串
  • cookie:字元串
  • session:可保存對象
  • application:可保存對象
  • cache:可保存對象

4.客戶端與服務端交互時的關係

  • viewstate:

      客戶端與服務端的交互只能發送或操作當前頁面的視圖狀態

  • cookie:

       一般情況下,每次用戶向服務端發送請求時會把當前站點的所有cookie發向服務端,但cookie允許設置路徑(HttpCookie類包含Domain和Path屬性),如果設置了具體的路徑,則只有訪問該路徑時,才會把cookie發往服務端

  • session:

       客戶端訪問同一個站點下的不同資源,使用的是同一個session,服務端和客戶端通常通過cookie來進行關聯,即在客戶端保存sessionID,每次向服務端發起請求時都會同時把sessionID(在cookie中的主鍵名為“ASP.NET_SessionId”)也一起帶上,這樣服務端拿到sessionID後就能找到客戶端對應的session,所以session只跟站點和客戶端相關。

  • application:

     所有客戶端共用同一個application,它是全局的

  • cache:

      所有客戶端共用同一個cache,它是全局的,但它有更多的控制權,如設置何時失效

 5.應用場景

viewstate:只存在ASP.NET WebForm中,如每個伺服器端控制項都包含一個視圖狀態

cookie:通常用於存儲一些服務端相關信息的標識符,從而在cookie發往服務端後可以找到其所對應的信息,也會用來保存賬戶密碼等相關信息

session:用於與指定的客戶端共同維護一個狀態,保存具體的狀態信息

application:保存全局的狀態信息,如該網站的訪問次數

cache:保存全局的狀態信息,且這些信息的失效時間可以得到更好的控制

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.解釋器路徑 2.編碼 1.ascill 00000000 (8個位表示) 缺點:表示不了英文 2.unicode 0000000000000000+ (至少16位表示) 缺點:消耗記憶體,當表示位不需要16位以上,造成多餘記憶體消耗 Python3 無需關註 Python2 每個文件中只要出現中文, ...
  • [TOC] 一、簡介 java中的日期處理一直是個問題,沒有很好的方式去處理,所以才有第三方框架的位置比如joda。 文章主要對java日期處理的詳解,用1.8可以不用joda。 1. 相關概念 首先我們對一些基本的概念做一些介紹,其中可以將GMT和UTC表示時刻大小等同。 1.1 UT時間 UT反 ...
  • 一、簡介 JavaBean組件是一些可移植、可重用並可組裝到應用程式中的Java類,類必須是具體的和公共的。 符合下列設計規則的任何Java類均是以JavaBean: 1.對數據類型“protype”的每個可讀屬性,Bean下必須有下麵簽名的一個方法:public proptype getPrope ...
  • 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 5 public class TestMap { 6 public static void main(String[] args) {... ...
  • 背水一戰 Windows 10 之 控制項(自定義控制項): 自定義控制項的 Layout 系統, 自定義控制項的控制項模板和事件處理的相關知識點 ...
  • 前言 ASP.NET Core 2.0 怎麼發佈到Ubuntu伺服器?又如何在伺服器上配置使用ASP.NET Core網站綁定到指定的功能變數名稱,讓外網用戶可以訪問呢? 步驟 第1步:準備工作 一臺Liunx伺服器:筆者用的是【[搬瓦工][1]】的VPS伺服器(CDN加速,支持支付寶,多機房選擇) 低配版 ...
  • 閱讀目錄 前言 成熟的解決方案 剖析 性能測試 結語 一、前言 在上一篇分散式系統系列中《分散式系統中的必備良藥 —— 服務治理》中闡述了服務治理的一些概念,那麼與服務治理配套的必然會涉及到RPC框架。在當前互聯網的大背景下,RPC的運用應該大家或多或少都有涉及,國內外的RPC框架也是百花齊放。那麼 ...
  • [MY NOTE] [轉載請註明出處] Reference Source: http://www.albahari.com/valuevsreftypes.aspx http://www.c-sharpcorner.com/article/C-Sharp-heaping-vs-stacking-in ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...