zoukankan      html  css  js  c++  java
  • Asp.net 中ViewState,cookie,session,application,cache的比较

    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:保存全局的状态信息,且这些信息的失效时间可以得到更好的控制

  • 相关阅读:
    HDU 1025 Constructing Roads In JGShining's Kingdom (DP+二分)
    HDU 1158 Employment Planning
    HDU 2059 龟兔赛跑
    Csharp 简单操作Word模板文件
    Csharp windowform datagridview Clipboard TO EXCEL OR FROM EXCEL DATA 保存datagridview所有數據
    Csharp 讀寫文件內容搜索自動彈出 AutoCompleteMode
    Csharp windowform controls clear
    CSS DIV大图片右上角叠加小图片
    Csharp DataGridView自定义添加DateTimePicker控件日期列
    Csharp 打印Word文件默認打印機或選擇打印機設置代碼
  • 原文地址:https://www.cnblogs.com/yyg1986/p/8053454.html
Copyright © 2011-2022 走看看