zoukankan      html  css  js  c++  java
  • 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大小超过限制都被忽略,且永远不会被设置。

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

  • 相关阅读:
    HDU1029 Ignatius and the Princess IV
    UVA11039 Building designing【排序】
    UVA11039 Building designing【排序】
    POJ3278 HDU2717 Catch That Cow
    POJ3278 HDU2717 Catch That Cow
    POJ1338 Ugly Numbers(解法二)
    POJ1338 Ugly Numbers(解法二)
    UVA532 Dungeon Master
    UVA532 Dungeon Master
    POJ1915 Knight Moves
  • 原文地址:https://www.cnblogs.com/yunanwu/p/4168597.html
Copyright © 2011-2022 走看看