In 91

Keep studying hard, then work happily by smart working

文章標籤


more tags...

簡體中文blog

91推薦好書

最新回應

[ASP.NET]ViewState、Session、Cookies、Application State比較

From: www.dzone.com

image

這張表列的還蠻清楚的,(表中Cookie的Reading部分,應該是Page.Request.Cookies,感謝小朱前輩提出指正

額外可以補充的是Cache…基本上用到Cache的機率應該比Application高不少吧?

 

簡單整理一下重點:

  1. ViewState
    • 只存在於正在執行那一頁,通常用於postback記值(因為http無狀態)。
    • 原理是HTML上的hidden field,會透過Base-64編碼
    • webconfig裡可以透過設定來加密:<pages viewStateEncryptionMode="Always" />
    • 通常server control會透過viewstate來保存其屬性值,也是傳統ASP.NET web form重整頁面最容易碰到的效率問題。可透過EnableViewState屬性開關。
    • 可存放Object (一般程式用到普遍最大的應該也只是hash table吧 )
  2. Session
    • 可存在於該連線,不同頁面,通常用來跨多頁傳些比較重要、需要安全的值。如果是前後頁面關連性的值,只需要用URL parameter即可。Session的意義比較像是在什麼樣的情況下,開始或變更了某個Session的值。
    • 類似跨網頁的全域變數
    • 佔用Server端記憶體,連線數量一暴增,記憶體很可能被操掛。
    • 預設存在記憶體裡,可以改存在Session State Server或DB。
    • 可設定存活時間,但發生錯誤或特定情況時,會導致Session遺失。(例如ShowModalDialog之後使用window.open)
  3. Cookies
    • 單一使用者,存在client端,讀的到就活著。
    • 需注意安全性考量,通常用在個人化portal或profile。
    • 有些single sign on會透過cookie(加密)來存放帳號資訊。
    • String格式存放。
  4. Application
    • 在Server上所有User存取同一份。
    • 當Web application重起或關閉時結束。
    • 吃Server記憶體。
  5. Cache
    • 吃Server記憶體。
    • 可設定時間、hit rate或先進先出來當作條件。
    • 通常應用在靜態網頁快取。

 

2009/7/29 補充:Nine Options for Managing Persistent User State in Your ASP.NET Application

managingPersistentUserState

點部落-In Joey

↑ Grab this Headline Animator

 

2009/6/28 02:08| 閱讀數 : 3440 | 2 人收藏 我要推薦 | 3 Comments | 訂閱


關連文章

回應

  • regionbbs 2009/6/28 上午 08:46 回覆

    # re: [ASP.NET]ViewState、Session、Cookies、Application State比較

    1. 表中 Cookie 在 Reading Value 的部份有錯,應該是 Page.Request.Cookies。

    2. ViewState 可以放 object 的條件是 object 必須要是可序列化(有標示 [Serializable] 的標記)

  • hatelove 2009/6/28 下午 12:26 回覆

    # re: [ASP.NET]ViewState、Session、Cookies、Application State比較

    to 小朱大,

    謝謝您的提醒唷,感激不盡。

    的確Reading用Response應該是他筆誤啦,

    ViewState的部分您提出的跟他寫的「any Serializable .NET data type」是否同樣意思呢?

     

  • regionbbs 2009/7/6 下午 05:46 回覆

    # re: [ASP.NET]ViewState、Session、Cookies、Application State比較

    Yes.

標題 *
名稱 *
Email (將不會被顯示)
Url
回應
登入後使用進階評論
Please add 7 and 8 and type the answer here: