ゞ沉默是金ゞ

          魚(yú)離不開(kāi)水,但是沒(méi)有說(shuō)不離開(kāi)哪滴水.
          posts - 98,comments - 104,trackbacks - 0
                 網(wǎng)頁(yè)的緩存是由HTTP消息頭中的“Cache-control”來(lái)控制的,常見(jiàn)的取值有private、no-cache、max-age、must-revalidate等,默認(rèn)為private。其作用根據(jù)不同的重新瀏覽方式分為以下幾種情況:
          (1) 打開(kāi)新窗口
          如果指定cache-control的值為private、no-cache、must-revalidate,那么打開(kāi)新窗口訪問(wèn)時(shí)都會(huì)重新訪問(wèn)服務(wù)器。而如果指定了max-age值,那么在此值內(nèi)的時(shí)間里就不會(huì)重新訪問(wèn)服務(wù)器,例如:
          Cache-control: max-age=5
          表示當(dāng)訪問(wèn)此網(wǎng)頁(yè)后的5秒內(nèi)再次訪問(wèn)不會(huì)去服務(wù)器
          (2) 在地址欄回車
          如果值為private或must-revalidate(和網(wǎng)上說(shuō)的不一樣),則只有第一次訪問(wèn)時(shí)會(huì)訪問(wèn)服務(wù)器,以后就不再訪問(wèn)。如果值為no-cache,那么每次都會(huì)訪問(wèn)。如果值為max-age,則在過(guò)期之前不會(huì)重復(fù)訪問(wèn)。
          (3) 按后退按扭
          如果值為private、must-revalidate、max-age,則不會(huì)重訪問(wèn),而如果為no-cache,則每次都重復(fù)訪問(wèn)
          (4) 按刷新按扭
          無(wú)論為何值,都會(huì)重復(fù)訪問(wèn)


          項(xiàng)目中使用過(guò)濾器來(lái)設(shè)置網(wǎng)頁(yè)的緩存
          FilterConfig fc; 

              
          public void doFilter(ServletRequest req, ServletResponse res,
                      FilterChain chain) 
          throws IOException, ServletException {
                  HttpServletResponse response 
          = (HttpServletResponse) res;
                  
          // set the provided HTTP response parameters
                  for (Enumeration e = fc.getInitParameterNames(); e.hasMoreElements();) {
                      String headerName 
          = (String) e.nextElement();
                      response.addHeader(headerName, fc.getInitParameter(headerName));
                  }

                  
          // pass the request/response on
                  chain.doFilter(req, response);
              }
           

          配置文件的配置:
          <filter>
                  
          <filter-name>NoCache</filter-name>
                  
          <filter-class>filter.CacheFilter</filter-class>
                  
          <init-param>
                      
          <param-name>Cache-Control</param-name>
                      
          <param-value>no-cache, must-revalidate</param-value>
                  
          </init-param>
              
          </filter>
              
          <filter>
                  
          <filter-name>CacheForWeek</filter-name>
                  
          <filter-class>filter.CacheFilter</filter-class>
                  
          <init-param>
                      
          <param-name>Cache-Control</param-name>
                      
          <param-value>max-age=604800</param-value>
                  
          </init-param>
              
          </filter>

              
          <filter-mapping>
                  
          <filter-name>CacheForWeek</filter-name>
                  
          <url-pattern>*.js</url-pattern>
              
          </filter-mapping>
              
          <filter-mapping>
                  
          <filter-name>CacheForWeek</filter-name>
                  
          <url-pattern>*.css</url-pattern>
              
          </filter-mapping> 
              
          <filter-mapping>
                  
          <filter-name>CacheForWeek</filter-name>
                  
          <url-pattern>*.gif</url-pattern>
              
          </filter-mapping> 

          上述設(shè)置保存了1周的緩存。
          posted on 2008-12-30 16:49 ゞ沉默是金ゞ 閱讀(10101) 評(píng)論(5)  編輯  收藏 所屬分類: Java SE

          FeedBack:
          # fbm3g
          2008-12-30 19:11 | fbm3g
          fbm3g 經(jīng)典  回復(fù)  更多評(píng)論
            
          # re: HTTP/1.1 Cache-Control的理解
          2008-12-31 08:49 | r
          好東西  回復(fù)  更多評(píng)論
            
          # re: HTTP/1.1 Cache-Control的理解
          2008-12-31 09:18 | ゞ沉默是金ゞ
          @fbm3g
          @r
          感謝各位關(guān)注!  回復(fù)  更多評(píng)論
            
          # re: HTTP/1.1 Cache-Control的理解
          2008-12-31 19:58 | 夢(mèng)想在這里起飛
          寫(xiě)得不錯(cuò)啊,看看我這個(gè)
          開(kāi)源的報(bào)表ireport項(xiàng)目web應(yīng)用
          http://ireport.cubebi.com


            回復(fù)  更多評(píng)論
            
          # re: HTTP/1.1 Cache-Control的理解
          2013-09-20 21:40 | marmoglass
          這是網(wǎng)頁(yè)代碼,還是IIS 代碼  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 中卫市| 海安县| 民和| 平湖市| 宝清县| 上饶市| 安庆市| 宽甸| 梁山县| 罗平县| 宝清县| 金寨县| 永顺县| 富宁县| 双牌县| 万州区| 保德县| 襄汾县| 勐海县| 阳江市| 莱芜市| 双城市| 武山县| 象州县| 长泰县| 苏尼特左旗| 伊川县| 敦化市| 和硕县| 共和县| 胶南市| 南岸区| 界首市| 米脂县| 平谷区| 容城县| 萝北县| 长泰县| 濉溪县| 晋江市| 南昌市|