婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > 一個(gè)伴隨ASP.NET從1.0到4.0的OutputCache Bug介紹

一個(gè)伴隨ASP.NET從1.0到4.0的OutputCache Bug介紹

熱門標(biāo)簽:浙江外呼系統(tǒng)怎么安裝 廈門商鋪地圖標(biāo)注 銅川小型外呼系統(tǒng)運(yùn)營商 陜西人工外呼系統(tǒng)哪家好 海外地圖標(biāo)注門市標(biāo) 山西防封卡電銷卡套餐 云南外呼電銷機(jī)器人系統(tǒng) 上海楊浦怎么申請申請400電話 地圖標(biāo)注多個(gè)行程
我們先來一睹這個(gè)Bug的風(fēng)采!

在一個(gè).aspx文件中增加OutputCache設(shè)置,代碼如下:
復(fù)制代碼 代碼如下:

%@ OutputCache Duration="300" VaryByParam="*"%>

上面的設(shè)置表示:緩存5分鐘,根據(jù)不同的查詢字符串更新緩存。Location使用的是默認(rèn)值A(chǔ)ny,也就是可以在瀏覽器、代理服務(wù)器、Web服務(wù)器三個(gè)地方進(jìn)行緩存,在Response Headers中的體現(xiàn)就是Cache-Control:public, max-age=300。(如果你要用CDN加速,Cache-Control就要用public)。

然后,我們在Firefox瀏覽器中訪問這個(gè)頁面,并打開Firebug,見下圖:

第一次訪問,返回狀態(tài)碼為"200 OK",正常。這里Response Headers中的Vary:Accept-Encoding是因?yàn)镮IS啟用“動(dòng)態(tài)內(nèi)容壓縮”產(chǎn)生的,如果不啟用,就不會(huì)出現(xiàn)。

這時(shí)緩存應(yīng)該被建立起來了,我們按F5刷新一下瀏覽器,看一下結(jié)果,見下圖:

第二次訪問,返回狀態(tài)碼為"304 Not Modified",瀏覽器緩存生效,這也是我們期望的。

但是,請注意一下上圖中的Vary:*,它會(huì)讓瀏覽器的緩存失效,我們再按一下F5驗(yàn)證一下。

果然,瀏覽器緩存失效,返回狀態(tài)碼變回了200 OK。緩存時(shí)間有5分鐘呢,第三次就失效了,這樣的結(jié)果顯然不是我們期望的。

上面的測試是在Web服務(wù)器上IIS啟用動(dòng)態(tài)內(nèi)容壓縮(dynamic content compression)的情況下進(jìn)行的,如果關(guān)閉動(dòng)態(tài)內(nèi)容壓縮,每次請求返回都是200 OK,Vary都是星號(hào)。也就是說瀏覽器游覽緩存根本沒起作用。

Bug欣賞完畢,我們進(jìn)行第二個(gè)測試。

將OutputCache的VaryByParam屬性值設(shè)置為none:

復(fù)制代碼 代碼如下:

%@ OutputCache Duration="600" VaryByParam="none"%>

測試結(jié)果顯示,瀏覽器第一次請求之后,接下來在緩存時(shí)間內(nèi),服務(wù)器的響應(yīng)都是"304 Not Modified",這才是我們想要的效果。

但是,在實(shí)際應(yīng)用中,我們使用VaryByParam="none"很少,用的更多的是為VaryByParam指定對應(yīng)的值。

所以這個(gè)Bug影響很大,增加了服務(wù)器負(fù)擔(dān),浪費(fèi)了帶寬。

Bug相關(guān)信息

在微軟的官方文檔ASP.NET 4 Breaking Changes中專門提到了這個(gè)bug —— "Output Caching Changes to Vary * HTTP Header":

In ASP.NET 1.0, a bug caused cached pages that specified Location="ServerAndClient" as an output–cache setting to emit a Vary:* HTTP header in the response. This had the effect of telling client browsers to never cache the page locally.

In ASP.NET 1.1, the System.Web.HttpCachePolicy.SetOmitVaryStar method was added, which you could call to suppress the Vary:* header. This method was chosen because changing the emitted HTTP header was considered a potentially breaking change at the time. However, developers have been confused by the behavior in ASP.NET, and bug reports suggest that developers are unaware of the existing SetOmitVaryStar behavior.

In ASP.NET 4, the decision was made to fix the root problem. The Vary:* HTTP header is no longer emitted from responses that specify the following directive:

%@OutputCache Location="ServerAndClient" %>

As a result, SetOmitVaryStar is no longer needed in order to suppress the Vary:* header.

In applications that specify Location="ServerAndClient" in the @ OutputCache directive on a page, you will now see the behavior implied by the name of the Location attribute's value – that is, pages will be cacheable in the browser without requiring that you call the SetOmitVaryStar method.

從上面的文檔中我們可以知道這個(gè)Bug的歷史:

在ASP.NET 1.0時(shí),如果在OutputCache中設(shè)置Location="ServerAndClient",在ASP.NET在響應(yīng)時(shí)會(huì)瀏覽器發(fā)送Vary:* HTTP header。

在ASP.NET 1.1時(shí),微軟針對這個(gè)Bug,提供一個(gè)專門的方法System.Web.HttpCachePolicy.SetOmitVaryStar(bool omit),通過SetOmitVaryStar(true)修改HTTP header,去掉Vary:*。

在ASP.NET 4時(shí),微軟鄭重地宣布從根本上解決了這個(gè)問題。

而且,文檔中提到這個(gè)bug只會(huì)出現(xiàn)在Location="ServerAndClient"時(shí)。

可是,我用ASP.NET 4的實(shí)測試情況是:不僅Location="ServerAndClient"時(shí)的Bug沒有解決,而且Location="Any"時(shí)也會(huì)出現(xiàn)同樣的Bug。

解決方法

解決方法很簡單,只要用ASP.NET 1.1時(shí)代提供的System.Web.HttpCachePolicy.SetOmitVaryStar(bool omit)就能解決問題,只需在Page_Load中添加如下代碼:

復(fù)制代碼 代碼如下:

protected void Page_Load(object sender, EventArgs e)
{
Response.Cache.SetOmitVaryStar(true);
}

相關(guān)文檔

ASP.NET caching tests find a bug with VaryByParam

How to cache asp.net web site for better performance

Microsoft Connect: The ServerAndClient parameter with the OutputCache page directive does not cache on the client, without code

小結(jié)
小bug,解決方法也很簡單。但是,如果你不知道這個(gè)bug,又會(huì)陷入微軟的一個(gè)騙局(之前提到一個(gè)WCF Client的騙局),不知不覺中浪費(fèi)了服務(wù)器資源與帶寬。

微軟那么有錢,有那么多天才程序員,可是Bug也很難避免,可見開發(fā)優(yōu)秀的軟件是多么具有挑戰(zhàn)性的工作!

補(bǔ)充

ASP.NET MVC 中不存在這個(gè)問題。

標(biāo)簽:孝感 常州 自貢 西雙版納 信陽 朔州 許昌 萊蕪

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《一個(gè)伴隨ASP.NET從1.0到4.0的OutputCache Bug介紹》,本文關(guān)鍵詞  一個(gè),伴隨,ASP.NET,從,1.0,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《一個(gè)伴隨ASP.NET從1.0到4.0的OutputCache Bug介紹》相關(guān)的同類信息!
  • 本頁收集關(guān)于一個(gè)伴隨ASP.NET從1.0到4.0的OutputCache Bug介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色综合激情五月| 日韩三级视频在线观看| 91精品国产一区二区三区香蕉| www激情久久| 天涯成人国产亚洲精品一区av| 成人免费高清在线| 26uuu国产电影一区二区| 亚洲一区av在线| 波多野结衣亚洲一区| 精品国内片67194| 日本伊人色综合网| 色婷婷精品久久二区二区蜜臂av | 日韩一区二区三区视频| 亚洲婷婷在线视频| av亚洲精华国产精华| 久久久久久久久久久电影| 美女一区二区视频| 欧美日韩成人高清| 亚洲一区二区欧美激情| 色呦呦日韩精品| 综合av第一页| 99re8在线精品视频免费播放| 久久精品亚洲国产奇米99| 精品一区二区三区日韩| 精品三级在线观看| 蜜臀99久久精品久久久久久软件| 欧美男人的天堂一二区| 亚洲一区在线观看视频| 在线亚洲一区二区| 亚洲成人黄色小说| 8v天堂国产在线一区二区| 天堂一区二区在线免费观看| 欧美精品电影在线播放| 日本免费在线视频不卡一不卡二 | 久久久蜜桃精品| 国产一区二区福利视频| 欧美成人精品二区三区99精品| 蜜桃av一区二区三区电影| 日韩欧美久久一区| 国产精品99久久久久久似苏梦涵 | 精品国产乱码91久久久久久网站| 麻豆精品在线视频| 2023国产精品自拍| 成人av动漫网站| 一区二区三区四区中文字幕| 91黄色在线观看| 日韩高清在线不卡| 久久老女人爱爱| av在线播放成人| 亚洲主播在线观看| 日韩一区二区三区四区| 国产一区二区久久| 一区二区三区在线视频播放| 欧美日韩高清影院| 国产一区二区精品久久| 亚洲欧美激情小说另类| 日韩欧美一级二级三级| 国产99久久久久久免费看农村| 成人欧美一区二区三区白人| 欧美人xxxx| 成人一二三区视频| 午夜精品久久久久久久久久| 久久久777精品电影网影网| 色婷婷综合久久久| 国产一区二区三区在线看麻豆| 成人免费在线观看入口| 日韩一区二区三区视频在线观看| 99在线精品观看| 日本成人中文字幕| 成人免费小视频| 日韩欧美成人午夜| 91污片在线观看| 狠狠色狠狠色综合系列| 亚洲视频一区二区免费在线观看| 日韩免费观看高清完整版| 色偷偷久久一区二区三区| 麻豆精品一区二区综合av| 亚洲免费伊人电影| 国产亚洲精久久久久久| 91精品婷婷国产综合久久性色| 99在线精品观看| 国产成人精品午夜视频免费| 三级一区在线视频先锋 | 国产精品每日更新在线播放网址| 欧美日本高清视频在线观看| 波多野结衣一区二区三区 | 国产精品少妇自拍| 日韩片之四级片| 欧美日韩在线观看一区二区| 不卡高清视频专区| 国产一区二区三区美女| 蜜桃一区二区三区在线| 亚洲成人免费影院| 亚洲精品ww久久久久久p站| 欧美韩国日本不卡| 2024国产精品| 精品国产乱码久久久久久久| 日韩一卡二卡三卡国产欧美| 欧美精品在线观看一区二区| 日本高清不卡视频| 91免费视频观看| 成人不卡免费av| 成人午夜免费av| 成人激情免费视频| 成人福利视频网站| 成人一级黄色片| 国产成人在线免费观看| 成人一级片网址| 成人av免费在线观看| 高清beeg欧美| 成人h版在线观看| 成人免费视频一区二区| 不卡的av中国片| 91麻豆精品在线观看| gogo大胆日本视频一区| 99精品视频中文字幕| 色国产精品一区在线观看| 欧美性受xxxx黑人xyx性爽| 色综合久久88色综合天天免费| 色欧美乱欧美15图片| 欧美日韩在线观看一区二区| 欧美一区在线视频| 欧美成人性福生活免费看| 精品免费一区二区三区| 国产欧美va欧美不卡在线| 亚洲丝袜美腿综合| 天堂影院一区二区| 激情综合网天天干| 成人黄色免费短视频| 一本一道综合狠狠老| 欧美顶级少妇做爰| 久久综合精品国产一区二区三区| 国产日韩精品视频一区| 亚洲欧美日韩国产另类专区| 天堂蜜桃一区二区三区| 国产精品中文字幕日韩精品 | 亚洲综合成人在线视频| 午夜免费欧美电影| 国产一区二区三区香蕉| 色老汉一区二区三区| 51精品久久久久久久蜜臀| 久久色.com| 亚洲综合在线观看视频| 免费成人av资源网| 91免费看片在线观看| 91精品国产福利| 国产精品视频九色porn| 午夜免费欧美电影| 成人午夜在线免费| 欧美一区二区三区婷婷月色 | 欧美激情在线免费观看| 午夜私人影院久久久久| 国产精品一线二线三线精华| 欧美三区在线观看| 久久久www成人免费无遮挡大片| 亚洲欧美色综合| 国产精品一区二区在线看| 欧美日韩在线观看一区二区 | 午夜视黄欧洲亚洲| 国产寡妇亲子伦一区二区| 欧美精品久久久久久久久老牛影院| 国产欧美一区视频| 免费欧美高清视频| 在线观看视频91| 国产精品久久久久aaaa| 免费黄网站欧美| 欧美日韩精品综合在线| 亚洲日本韩国一区| 豆国产96在线|亚洲| 日韩精品一区二区三区中文精品| 一级做a爱片久久| 91在线无精精品入口| 日本一区二区成人| 韩国成人精品a∨在线观看| 91精品一区二区三区在线观看| 亚洲欧美日韩在线不卡| 国产很黄免费观看久久| 精品处破学生在线二十三| 日本不卡视频在线观看| 欧美日韩三级视频| 亚洲午夜在线电影| 欧美自拍偷拍午夜视频| 一区二区三区不卡在线观看| 色哟哟欧美精品| 亚洲精品国产a| 色偷偷88欧美精品久久久| 亚洲色图都市小说| 在线一区二区视频| 亚洲精品视频在线观看网站| 91在线视频播放地址| 中文字幕在线不卡视频| 91在线你懂得| 亚洲男人的天堂在线aⅴ视频| 97精品电影院| 一区二区三区av电影| 欧美午夜片在线观看| 丝袜诱惑制服诱惑色一区在线观看| 精品视频在线免费看| 日日摸夜夜添夜夜添精品视频| 在线成人av网站|