|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
也不知道,我同学昨天说数据挖掘很好。asp.net|缓存|客户端 媒介
这个系列的文章要会商的是怎样经由过程ASP.net服务器端手艺来优化客户端缓存战略,并且让这类战略变得可设置和可扩大。我们要懂得的常识从HTTP协定中相干属性对客户端缓存的影响,到ASP.NET怎样把持这些属性来完成我们的缓存战略。
HTTP基本常识
因为会商触及到客户端缓存,以是仍是先要复杂先容一下HTTP协定是怎样把持客户端缓存的,这里触及到HTTP头的Last-Modified、ETag等属性。
Last-Modified
在扫瞄器第一次哀求某一个URL时,服务器真个前往形态会是200,内容是你哀求的资本,同时有一个Last-Modified的属性标志此文件在服务期端最初被修正的工夫,格局相似如许:
Last-Modified:Fri,12May200618:53:33GMT
客户端第二次哀求此URL时,会在头部到场一个属性,扣问该工夫以后文件是不是有被修正过:
If-Modified-Since:Fri,12May200618:53:33GMT
假如服务器真个文件没有被修正过,则前往形态是304,内容为空,如许就节俭了传输数据量。假如服务器真个文件被修正过,则前往和第一次哀求时相似。
ETag
和Last-Modified相似,因为RFC2616(也就是HTTP/1.1)中没有申明ETag该是甚么格局的,只需确保用双引号括起来就好了,以是你能够用文件的hash,乃至是间接用Last-Modified,以下是服务器端前往的格局:
ETag:"50b1c1d4f775c61:df3"
客户真个查询更新格局是如许的:
If-None-Match:W/"50b1c1d4f775c61:df3"
假如ETag没改动,则前往形态304然后不前往,这也和Last-Modified一样。
Expires
这个属性就如我们在ASP中利用HttpResponse.ExpiresAbsolute一样间接,声明某某时候过时以后扫瞄器就应当从头哀求该URL,利用格局为:
Expires:Sun,10Feb200216:00:00GMT
注重HttpResponse.ExpiresAbsolute在ASP.NET中是不倡议利用的,如今我们应当利用的是HttpResponse.Cache.SetExpires。
Pragma
一般我们用到的值就是no-cache,这和在Cache-Control中利用no-cache值是一样的,Cache-Control鄙人面讲。Pragma的利用格局以下:
Pragma:no-cache
Cache-Control
这是一个汇合型属性,它内里可以包括良多子属性,而且同意用户扩大新的子属性。罕见的子属性包含:
max-age-以秒为单元的超时,掩盖Expires属性。
public-同意保留在共享缓存中。
private-只同意保留在公有缓存中。
no-cache-不同意缓存。
no-store-不同意缓存在耐久介质中。
no-transform-不同意转换存储体系。
有理由相信是能提供更出色的性能。很多平台无法支持复杂的编译器,因此需要二次编译来减少本地编译器的复杂度。当然可能做不到java编译器那么简易。 |
|