《关于IIS设置静态内容缓存时间》由会员分享,可在线阅读,更多相关《关于IIS设置静态内容缓存时间(24页珍藏版)》请在金锄头文库上搜索。
1、关于IIS设置静态内容缓存时间,在这里给大家介绍一下:我们的网站中往往包含大量的页面组件, 比如图片、样式表文件、JS脚本文件和Flash动画。这些组件的变化频率非常低,尤其是那些构成 网站基本框架的组件,几乎不会发生变化。我们可以将这些变化率很低的组件看作静态内容,利用IIS的内容过期机制和浏览器的本地缓存机制将它们在访问者的电脑硬盘中保存一段时间。当访问者访问你的网站时,如果这些存在本地的静态内容没有过期,浏览器会从本地硬盘中装载,而不去向服务器发岀请求。如果你使用Fiddler这样的工具跟踪网页访问,你会清楚地看到虽然只是访问一个页面,但是发岀的Http请求和应答却不止一个。网页中的每张
2、图片,每个 JS脚本文件,每个CSS文件,都会引 发一次请求和应答。因此如果想让网页的访问速度快起来,减少Http的请求数量,降低从服务器下载内容的次数是有效途径。而使用了内容过期机制后可以就实现这样的目的,这就是使用内容过期机制的意义。大多数的 Web开发者都玩过IIS 6或IIS 7 ,但是又有多少人仔细观察过 HTTP Headers或HTTPResponse Headers 标签中的内容呢?此处我以IIS 6为例,默认情况下此 标签中的界面如下图:第一种情况:请求的资源为静态资源,例如 htm , html文件(这里称为静态资源也许不合适,统称为IIS本身能自己处理的资源吧)。同时,我
3、们启用内容过期,而且设置了立即过期。此时,每次请求都会向 服务器申请下载最新版本。浏览器不做缓存处理。注意观察下面的状态都是 200.看右下角的Cache信息是:no-cache。这种方式可以保证客户端看到的永远是最新版本,也就 是说如果服务器端进行了更新,一定能被客户端看到。05衢 FiduMer - HTTP Debugging; ProxyiirHiji CaptLring - Ail 丹啦白曲百I / IIhttps/ZlacalhiQgtJfaq.htrriRefluent Heacfe 芦”*1.|旦*111*)File di: RJk lacfc 里is轉 tLdpComment
4、 Resue X卜 Resone Al *弘歸皿网 AutoDecode 曲 Find faSave 普 Launch 正 krClear Cache Encoder t; Tearcff M5DN 5eardtWebFarrnsI HeadersHesViBW | AUthRiw Heidr DefirtilidrtiLSI /faq. h.tn mp/l.ltoutRrgbKgiNwtURL40】HTTPlocalhost./Faq.htm40】HTTPlocalhost.JTaq.htm3MHTTPiDcaJhost./Taq.hbriZOOHTTPlocalhait.JFavicm.I
5、ra2OQHTTPlotalhCifL/faq.NrriWHTTPjFvicoh-iCCiHTTPIgcalhast-jFaq.htm200HTTPlocaihasLJfaqshtm200HTTPiDcalhdst-Jfaq.htm200HTTPlocdhosl:JTaq.htm200HTTPlocalhosl:Jfaq.htmIriefcrnnffTuxtMicwIrnagcWieHcxWw Webview |AUthCxhiig 1Privocr 1rinRaw | XMLj CacheCACh-Cntrd: fiO-tiChtj3atkti 欝 Inspectors ALtoRaspan
6、der 嚼jf RequestBudder j二 Timelr Fillers TextVewd Cache- Prsgrna; mrcadiej ClientE Accept: */*ficccpIi-Enwding: gai內 deflflt?Accept Languijge:弗叮1卧11匀065User-Agent: IMcslla/4,0 (cantlHe; M5EE6.0; Windows NOT 5.1; Tndent/4.0; .NET 匚LR 1.1432Z; NET CLR Z.O.5D7Z j -Tr-ciiTkKpirt匸onnectia仃;Kecp-AivcHost:
7、lixahost.Date: TusP 02 Jun 2009 06:机:06 1TEspres: ILB 勒 Jlt 2DQ9 06:41 :ES GMTJ EntityContent-Length; 3 4SContent-Type: testjhtmlETag; MBSabgofcfaeZcgi saBOLwt-MfldfiKl: Mwb QL Jun13d 9; 16 OMT” MiscellaneousAccecit-P.anges: hte&Agtbt; h$fTKifhfgSarver: Mkrosoft-IISfS-.lX-Powersd-By: A5P.NE7第二种情况:请求
8、的资源为静态资源,然后启用了内容过期。并且我们设置了过期时间(绝对过期和 相对过期)d&ociyiyou 詹性确定取消应用)帮助那么这种情况下,浏览器缓存将其作用。注意,第一次的状态是200,同时cache-control为86400,也就是一天。就是说这个网页会有一天的缓存。所以,你看后面的状态都是304.304表示没有检测到变化,所以使用缓存中的文件。如果下一次请求的时候, 服务器端的页面内容发生了变化呢?答案是,此时 服务器会发送新的版本, 替换掉客户端缓存。这是肯定需要的,否则就麻烦了。那么对照以上两种情况,我们总结岀来的东西是:如果启用内容过期,则可以明确地声明使用缓存的策略。如果使
9、用缓存,则减轻了服务器的负担但是,我们反过来想一下,如果没有启用内容过期呢,会怎么样呢?(这也是默认的情况)daociyiyou 屋性I性能 | ISAPI筛选据|主目逮|文档 |目录安全性 HTTP头|自定义错俣闕站PH) ISAPI_RfeWrit&ASF.NET厂诣用诃誇过期迈左SUIdlfalUI-lUiUll.lUI-lUU UJL岡站內容应迂心: r立即过期(P 拧就时间段后过期f C迥:期时间卜01毎1921在C:00:D0 巳目定义HTTP头S-Powered-By: ASF.NTT内容分级爲级帮助用戶识别您的站点提供的内容的类MINIE类型IIS只为扩展命隹MIME类型列表中
10、注 了的文件提供服务要配置更茅文件护 名,诸单击MINE类型打u确定 |我们发现,它最开始也是 200,后来是304.什么意思呢? 后面的几次请求也会检测到新,所以使用缓存。这又是为什么呢?服务器没有更toutRrgtocclNwtURL乍040】HTTPlocalhost./Faq.htjnE 140】HTTPlocalhost.JTaq.ttjn*z3MHTTPiDcaJhost./Taq.hbri3泅HTTPlocalhait.JFavicm.Ira4HTTPlocdhacL/fqq.赋简500HTTPJfjivicQn.iCCiiWHTTPIgcjhgst.Jfaq.htm304HTT
11、PiDcdhast-Jfaqsltm3(HHTTPlocdhcist-Jfaq.htm4*-30+WTPlocalhast JT-aq.htm期HTTPlocalhosl:Jfaq.htmI HeadersWeb FormsHs 渝 ewd Cache| AUth | Raw | 跡L衢 FiduMer - HTTP Debugging ProxyFile di: RJk lacfc 里is轉 tLdpComment Refcsue * Rsmo時 卜 Resume Al 弘earing iAutoDecodB Find Save 酒 Launch IE 礒匚lear CacheEncoder
12、 Tearcff M5DN 5eardij3atkti 欝 Inspectors ALtoRaspander 嚼jf RequestBudder 匸二 Timelng j Fillers TextVewIf-MkidFicd-Snce; Tue, DZJun 200906:5&;11 GMT lf=Nan&-Match: a5dd9%4Fs3c91:a0OT- Pragma; no-cadie# ClientAtCiBfjt:Accectt-Encadrg: gp,也HateAccept4ariguAge: zh-n|1eft-U5;q=CI.5Use-阿ent; Hozil.O (compa
13、tiNe MSEE6.O; Windows MT 54 Tndcnt几 D; .NET CLR1J 4322 ,hT QR 2,0,5072 d TransportCawten: Kee-AlveHg或:hxohiMtIrsfcrnnff Raw | XML| H&ader | lextVicwJinageMicMfHexWtwWebview匚 xhiriQPrivacyAaw Header DehrnlionsResponse HeadersIlKm/l.l 3Q4 Ebt fedifledd CacheDs怯:Tvep Q? M 1X19 M:5序20 GMT j EntityCortent-Lengfth: DETag; Ba5dd9364fe!3l:isa j MincrllancoiMftuthw: diemtzhanjServer; Microsoft-l!I5f5d- X4hgHer|-&y; ASP.IMT| 赚匚aptmrgr All Pif啦白曲百1/11hEtps/calhQst./faq.htrri这个问题应该跟浏览器本身的设置是有关系的就是说,浏览器通常对于网页和图像会自动做缓存。它当然需要检查服务器版本是否有变化,但如果没有变化,它就用缓存的版本了。aspx,会怎样呢?然后,我们再来考虑一个