亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

OutputCache屬性詳解(二)一 Location

2019-11-17 01:46:08
字體:
來源:轉載
供稿:網友

OutputCache屬性詳解(二)一 Location

目錄

  • OutputCache概念學習

  • OutputCache屬性詳解(一)

  • OutputCache屬性詳解(二)

  • OutputCache屬性詳解(三)

  • OutputCache屬性詳解(四)— SqlDependency

Web應用程序中的使用緩存位置:

  • 客戶端緩存(Client Caching)
  • 代理緩存(PRoxy Caching)
  • 反向代理緩存(Reverse Proxy Caching)
  • 服務器緩存(Web Server Caching)

Location:OutputCacheLocation 枚舉值之一。

使用該枚舉指定的值。這些值確定頁輸出的緩存位置。默認值為 Any。

  • Any:輸出緩存可位于產生請求的瀏覽器客戶端、參與請求的代理服務器(或任何其他服務器)或處理請求的服務器上。此值對應于 HttpCacheability.Public 枚舉值。         
  • Client:輸出緩存位于產生請求的瀏覽器客戶端上。此值對應于 HttpCacheability.Private 枚舉值。         
  • Downstream:輸出緩存可存儲在任何 HTTP 1.1 可緩存設備中,源服務器除外。這包括代理服務器和發出請求的客戶端。         
  • None:對于請求的頁,禁用輸出緩存。此值對應于 HttpCacheability.NoCache 枚舉值。         
  • Server:輸出緩存位于處理請求的 Web 服務器上。此值對應于 HttpCacheability.Server 枚舉值。         
  • ServerAndClient:輸出緩存只能存儲在源服務器或發出請求的客戶端中。代理服務器不能緩存響應。此值對應于 HttpCacheability.Private 和 HttpCacheability.Server 枚舉值的組合。

測試前準備,新建WebSite站點,配置文件增加:

  <system.web>    <caching>      <outputCacheSettings>        <outputCacheProfiles>           <!--name 緩存配置名稱           duration 緩存的時間(以秒計)           enabled  指定緩存有效           -->          <add name="outputCache60" duration="60" enabled="true" varyByParam="*" location="Any" />        </outputCacheProfiles>      </outputCacheSettings>    </caching>    <compilation debug="true"/>  </system.web>

增加兩個頁面Default.aspx和Default2.aspx如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><%@ OutputCache CacheProfile="outputCache60"  %><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server">    <div>    <%=DateTime.Now %>      </div>      <a href="Default2.aspx" target="_blank">Default2.aspx</a>    </form></body></html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><%@ OutputCache CacheProfile="outputCache60"  %><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server">    <title></title></head><body>    <form id="form1" runat="server">    <div>    <%=DateTime.Now %>    </div>    <a href="Default.aspx" >Default.aspx</a>    </form></body></html>

Any:輸出緩存可位于產生請求的瀏覽器客戶端、參與請求的代理服務器(或任何其他服務器)或處理請求的服務器上。

<add name="outputCache60" duration="60" enabled="true" varyByParam="*" location="Any" />

在客戶端,第一次請求為HTTP狀態碼為200,第二次請求的HTTP狀態碼為304

第一次HTTP的請求和響應信息如下(200):

第二次HTTP的請求和響應信息如下(304):

我們可以看到,第二次請求時,請求標頭里多了個 If-Modified-Since 和Last-Modified標簽:

  • 客戶端發HTTP請求時,使用If-Modified-Since標簽,把上次服務器告訴它的文件最后修改時間 返回到服務器端了。
  • 因為文件被改動過,兩邊時間不一致,所以服務器返回的HTTP狀態碼是200,并發送新頁面的全 部內容。
  • 服務器返回的HTTP頭標簽中有Last-Modified,告訴客戶端頁面的新的最后修改時間。

Cache-control 大家也可以看下

并且第二次響應中并沒有來自服務端響應數據,Any在多個客戶端統一請求該頁面的情況下,反饋給客戶端的數據都是一致的,也就是從服務端獲取的。(PS:這點與Client不同),如下:

Client:輸出緩存位于產生請求的瀏覽器客戶端上。

<add name="outputCache60" duration="60" enabled="true" varyByParam="*" location="Client" />

第一次數據請求與響應情況如下:

客戶端緩存,如果用戶在瀏覽器中點擊“后退”按鈕或在地址欄中重新輸入URL,那么在這種情況下,瀏覽器將從緩存獲取頁面;然而,如果用戶點擊“刷新”按鈕,那么瀏覽器中緩存將失效,瀏覽器發送頁面請求。但是瀏覽器做回退操作時,本身就可以讀取自身的緩存數據,這樣抓取的數據沒有意義,所以我們第二次抓取的順序需要是:

1.第一次進入Default.aspx頁面(抓取一次Default.aspx)

2.點擊 Default2.aspx 鏈接

3.進入Deafult2.aspx頁面后,點擊頁面中的Default.aspx鏈接跳轉回來(抓取一次Default.aspx)

這時候我們抓取的才是真正的304而不是瀏覽器自帶的304。

第二次請求抓取的請求與相應數據,如下圖:

可以看出設置成Client時,第二次請求時,在請求頭中,客戶端與服務端的鏈接已經斷開,沒有任何請求服務端的操作,且響應的狀態碼為304,讀取本地緩存。

多個客戶端同時請求時,其反饋的數據不一致,如下:

Downstream:輸出緩存可存儲在任何 HTTP 1.1 可緩存設備中,源服務器除外。這包括代理服務器和發出請求的客戶端。  

<add name="outputCache60" duration="60" enabled="true" varyByParam="*" location="Downstream" />

個人感覺DownstreamClinet類似,只不過有兩個小區別:

  • 數據存儲空間和數據存儲模式不一樣,后面會總結
  • Cache-Control,Client為private、Downstream 為 public

我們按照Clinet的方式繼續抓取兩次的請求與響應信息如下:

第一次請求與響應:

第二次請求與響應,與clinet完全一致,且在多個客戶端下數據也不同。

None:對于請求的頁,禁用輸出緩存。此值對應于 HttpCacheability.NoCache 枚舉值。

<add name="outputCache60" duration="60" enabled="true" varyByParam="*" location="None" />

我們繼續按抓取Clinet的方式抓取兩次請求和響應信息,如下:

第一次請求與響應:

第二次請求與響應:

可以看到兩次的請求與響應一致,且返回狀態碼都是200,在Cache-Control信息中為no-cache,響應信息中也不夾帶任何緩存相關的標簽。

private、must-revalidate、max-age、no-cache 對于瀏覽器操作的訪問大家可以看下

關于Pragma:no-cache,跟Cache-Control: no-cache相同。Pragma: no-cache兼容http 1.0 ,Cache-Control: no-cache是http 1.1提供的。因此,Pragma: no-cache可以應用到http 1.0 和http 1.1,而Cache-Control: no-cache只能應用于http 1.1.

在多個客戶端請求時,頁面所展示的信息不會一致。

Server:輸出緩存位于處理請求的 Web 服務器上。此值對應于 HttpCacheability.Server 枚舉值。

<add name="outputCache60" duration="60" enabled="true" varyByParam="*" location="Server" />

繼續按抓取Clinet的方式抓取兩次請求和響應信息,如下:

可以看到HTTP請求與響應的數據與設置為None 類似,但是在多個客戶端的情況下,Server的數據能保持一致,但None則不能。

ServerAndClient:輸出緩存只能存儲在源服務器或發出請求的客戶端中。代理服務器不能緩存響應。此值對應于 HttpCacheability.Private 和 HttpCacheability.Server 枚舉值的組合。

繼續按抓取Clinet的方式抓取兩次請求和響應信息,如下:

看請求與設置為Client差不多,但是Clinet在多客戶端下數據為不一致的,但ServerAndClient在多客戶端下則能保持一致

總結,如有問題或理解錯誤 歡迎指正。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕一区电影| 亚洲精品视频在线播放| 久久久在线视频| 麻豆国产精品va在线观看不卡| 精品国产拍在线观看| 国产日韩在线看| 精品亚洲国产成av人片传媒| 欧美在线观看网址综合| 国产精品日韩精品| 91天堂在线观看| 欧美精品精品精品精品免费| 美女黄色丝袜一区| 亚洲天堂网在线观看| 国产丝袜精品视频| 日韩激情第一页| 久久久噜噜噜久噜久久| 亚洲一区av在线播放| 另类专区欧美制服同性| 日韩a**站在线观看| 日韩精品在线看| 欧美美女15p| 国产日韩换脸av一区在线观看| 国产精品视频导航| 久久精品夜夜夜夜夜久久| 国内精品中文字幕| 亚洲国产精品免费| 国产一区二区三区日韩欧美| 国产一区深夜福利| 亚洲网址你懂得| 亚洲一二三在线| 久久免费视频在线观看| 国产在线999| 中文字幕视频一区二区在线有码| 成人中心免费视频| 亚洲成人黄色网址| 日韩精品极品毛片系列视频| 高清欧美一区二区三区| 亚洲黄色有码视频| 日韩美女视频在线观看| 亚洲精品av在线播放| 亚洲精品美女网站| 亚洲天堂开心观看| 国产精品一区二区三区久久| 欧美成人激情在线| 亚洲va码欧洲m码| 亚洲人成网站777色婷婷| 国产精品久久久久久久久久久新郎| 日韩中文字幕在线看| 俺去啦;欧美日韩| 亚洲视频在线免费看| 97av在线播放| 欧美专区福利在线| 日韩在线视频观看正片免费网站| 一区二区三区www| 日本免费久久高清视频| 亚洲第一精品久久忘忧草社区| 亚洲男人天堂网站| 欧美中文在线观看| 国产亚洲精品综合一区91| 久久久精品视频成人| 91精品国产综合久久久久久久久| 亚洲第一视频网| 久久久国产一区二区三区| 久久久极品av| 最近免费中文字幕视频2019| 国产精品久久久久久久7电影| 精品av在线播放| 国产成人亚洲综合| 91av视频在线| 欧美日韩综合视频| 九色成人免费视频| 一区国产精品视频| 久久久电影免费观看完整版| 538国产精品一区二区免费视频| 日韩影视在线观看| 人妖精品videosex性欧美| 91产国在线观看动作片喷水| 久久久伊人日本| 亚洲天堂成人在线视频| 亚洲午夜精品久久久久久久久久久久| 国产精品免费在线免费| 久久精品亚洲国产| 国产精品福利网站| 57pao国产成人免费| 久久久噜噜噜久噜久久| 成人啪啪免费看| 亚洲精品国产福利| 国产成人啪精品视频免费网| 亚洲xxxx视频| 日韩精品中文字幕有码专区| 高清日韩电视剧大全免费播放在线观看| 欧美电影免费看| 国产99久久精品一区二区 夜夜躁日日躁| 欧美大片在线看| 久久精品人人爽| 亚洲欧洲中文天堂| 69av在线视频| 日韩精品免费在线视频观看| 国产精品嫩草视频| 亚洲美女av网站| 激情成人中文字幕| 国产亚洲欧洲黄色| 在线亚洲国产精品网| 欧美视频中文在线看| 91香蕉国产在线观看| 亚洲成av人乱码色午夜| 欧美激情精品久久久久久久变态| 亚洲一区二区中文| 国产精品日韩欧美综合| 亚洲www在线观看| 亚洲天堂视频在线观看| 欧美福利小视频| 欧美超级免费视 在线| 在线一区二区日韩| 久久久精品美女| 亚洲最大福利视频网| 日韩欧美国产成人| 欧美肥老太性生活视频| 欧美黑人xxxx| 午夜精品一区二区三区在线视频| 免费不卡欧美自拍视频| 国产69精品久久久久9999| 亚洲精品v天堂中文字幕| 性金发美女69hd大尺寸| 日韩国产精品视频| 国产欧美日韩精品丝袜高跟鞋| 亚洲欧美中文在线视频| 亚洲精品suv精品一区二区| 欧美成人激情图片网| 国产一区二区三区精品久久久| 精品久久久久久久大神国产| 自拍视频国产精品| 国产亚洲一区精品| 国产精品h在线观看| 国产精品久久久久久久久久| 亚洲精品乱码久久久久久金桔影视| 一区二区亚洲精品国产| 精品毛片网大全| 国产精品久久精品| 久久精品久久久久久国产 免费| 精品亚洲一区二区三区四区五区| 最近免费中文字幕视频2019| 91国产视频在线播放| 亚洲级视频在线观看免费1级| 91免费电影网站| 亚洲2020天天堂在线观看| 草民午夜欧美限制a级福利片| 91精品国产自产在线观看永久| 成人久久18免费网站图片| 不卡在线观看电视剧完整版| 亚洲人成电影网站色xx| 久久精品国产v日韩v亚洲| 91高清视频在线免费观看| 欧美精品在线免费播放| 国产69精品久久久久9999| 国产精品嫩草影院一区二区| 久久久久免费视频| 尤物tv国产一区| 日韩有码在线电影| 国产精品国产三级国产aⅴ浪潮| 亚洲欧美在线x视频| 在线一区二区日韩| 韩国日本不卡在线| 69av在线播放|