All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
用ASP.NET,2.0在Oracle中存取图片(文件)的操作_.net资料_编程技术
安全基础:PHP后门的隐藏技巧测试报告_php资料_编程技术
千万级数据分页之二---一个简单的自定义分页控件_[Asp.Net教程]
在网页中插入媒体播放器详细参考_[Html教程]
php中退出while循环语句_php资料_编程技术
VBScript教程第一课,什么是,VBScript_JavaScript技术_编程技术
PHP实例:一个比较完善的购物车类_[PHP教程]
2003环境下如何手工修复安装.NET1.1_服务器技术_编程技术
SQL Server 对文件内容进行全文检索的查询_[SQL Server教程]
LINQ体验(5)——LINQ,to,SQL语句之Select、Distinct和Count、Sum_[Asp.Net教程]
Reading number is top 10 pictures
乳娘帕梅拉安德森5
Beautiful Japanese beauty(漂亮的日本美女)3
看到这名字我也是醉了。。。。。。
美洲杯宝贝的雨中风情2
The money of more than 100 countries and regions2
The real super beauty1
A man's favorite things2
Nikon microscopic photography of the first three
India's national beauty of the college students
Summer is most suitable for young people to travel in China7
Download software ranking
The Bermuda triangle3
天龙八部十二宫服务端
星际争霸1.08硬盘免安装版
Kung.Fu.Panda.2
尖东毒玫瑰B
C#COM编程指南
Unix video tutorial7
Unix video tutorial13
Professional killers2 for Android
The cock of the Grosvenor LTD handsome
aaa published in(发表于) 2013/12/17 8:02:48 Edit(编辑)
理解掌握ASP.NET与客户端缓存之HTTP协议_.net资料_编程技术

理解掌握ASP.NET与客户端缓存之HTTP协议_.net资料_编程技术

理解掌握ASP.NET与客户端缓存之HTTP协议_.net资料_编程技术-你的首页-uuhomepage.com

  前言


  这个系列的文章要讨论的是如何通过ASP.net服务器端技术来优化客户端缓存策略,而且让这种策略变得可配置和可扩展。我们要了解的知识从HTTP协议中相关属性对客户端缓存的影响,到ASP.NET如何控制这些属性来实现我们的缓存策略。


  HTTP基础知识


  由于讨论涉及到客户端缓存,所以还是先要简单介绍一下HTTP协议是如何控制客户端缓存的,这里涉及到HTTP头的Last-Modified、ETag等属性。


  Last-Modified


  在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样:


Last-Modified: Fri, 12 May 2006 18:53:33 GMT


  客户端第二次请求此URL时,会在头部加入一个属性,询问该时间之后文件是否有被修改过:


If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT


  如果服务器端的文件没有被修改过,则返回状态是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, 10 Feb 2002 16:00:00 GMT


  注意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 - 不允许转换存储系统。





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.