ASP.NET常用信息保持状态学习笔记一

 1、ViewState:ViewState是ASP.NET中.aspx特有的,通过HTTP报文传递,所有服务器端控件的值都会自动保存在ViewState   中。并且ViewState只能保存:String、Int、Bool、Array、ArrayList、Hashtable类型数据。

   ViewState通过base64编码后保存在页面隐藏域中,页面关闭时ViewState就销毁。
   道理同隐藏域,只是.NET Framwork封装了传值取值过程而已。
   使用ViewState有一个前提:页面必须有一个服务端窗体的标记<form runat="server">,服务器输出时,同时将ViewState的值添加到表单的隐藏域中。页面请求时,同时也将页面的__ViewState隐藏域提交,服务器在接收到请求时,自动在报文中寻找__ViewState的隐藏域,如果有存在的话,则自动将它的值解码后赋值给页面的ViewState属性中。
   缺点:加大网站数据流量、降低速度;只适合于在同一个页面不关闭的情况下多次与服务器之间的交互。 

  
  2、Cookie:cookie数据保存在浏览器客户端(一般为4KB),也是通过HTTP报文传递。

     cookie保存两种方式 Ⅰ、保存在浏览器内存中,不关闭浏览器情况下访问任何页面都可以得到。

                                      Ⅱ、保存到硬盘中(设置Expires(只写)的时间,如果设置时间为负数时再返回给浏览器,cookie会被清除。)                                cook.Expires=Datetime.Now.AddDays(-1)。

 

   不管客户端浏览器请求任何数据,报文都会带有cookie。
   清空所有Cookie时,谨防使用以下循环删除,不然可能出现死循环。(具体原因:在获取Request.Cookies的时候FrameWork会自动引用Respone.Cookies;具体实现可以使用反编译工具查看...)
    HttpCookieCollection hcc=Request.Cookies;
    for(int i=0;i<hcc.Count;i++)
    { HttpCookie cook =hcc[i];
      cook.Expries=DtaeTime.NOW.Adds(-1);
      Respone.Cookie.Add(cook);
    }
    可以使用反向循环的方法删除。
    for(int i=hcc.Count;i>0;i--){..}

 

注:Cookie大小限制(转)

源文:http://www.cnblogs.com/tedyding/archive/2010/03/20/1690690.html

一、浏览器允许每个域名所包含的cookie数:

  Microsoft指出InternetExplorer8增加cookie限制为每个域名50个,但IE7似乎也允许每个域名50个cookie

  Firefox每个域名cookie限制为50个。

  Opera每个域名cookie限制为30个。

  Safari/WebKit貌似没有cookie限制。但是如果cookie很多,则会使header大小超过服务器的处理的限制,会导致错误发生。

  注:“每个域名cookie限制为20个”将不再正确!

二、当很多的cookie被设置,浏览器如何去响应。

  除Safari(可以设置全部cookie,不管数量多少),有两个方法:

  最少最近使用(leastrecentlyused(LRU))的方法:当Cookie已达到限额,自动踢除最老的Cookie,以使给最新的Cookie一些空间。InternetExplorer和Opera使用此方法。

  Firefox很独特:虽然最后的设置的Cookie始终保留,但似乎随机决定哪些cookie被保留。似乎没有任何计划(建议:在Firefox中不要超过Cookie限制)。

三、不同浏览器间cookie大小也不同:

  Firefox和Safari允许cookie多达4097个字节,包括名(name)、值(value)和等号。

  Opera允许cookie多达4096个字节,包括:名(name)、值(value)和等号。

  InternetExplorer允许cookie多达4095个字节,包括:名(name)、值(value)和等号。

注:多字节字符计算为两个字节。在所有浏览器中,任何cookie大小超过限制都被忽略,且永远不会被设置。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文从百度空间搬家到博客园。

posted @ 2012-05-09 03:57  提灯寻影~  阅读(127)  评论(0编辑  收藏  举报