博客园的RSS请求不支持Last-Modified

今天在测试读取RSS时,使用到自己在博客园的RSS链接来做测试,发现使用Last-Modified方式优化时,RSS每次返回都会更新Last-Modified。

以下是用Fiddler对几次请求的截获结果:

第一次请求,客户端不会添加头If-Modified-Since头,这是肯定的。

image

服务器端返回了Last-Modified,并且响应代码是200,这样客户端可以在下次请求中使用。

 

第二次请求,客户端根据上次请求返回的Last-Modified,添加If-Modified-Since头。

image

服务器返回结果并不是我们预料中的304,却依然是200,也就是说全部内容又重新下载了一遍,If-Modified-Since请求头并未起作用。原因是什么?看看服务器返回的Last-Modified就知道,RSS内容并未更新,长度还是67672,本应该Last-Modified与第一次的Last-Modified相等才对的。

 

再进行一次测试:

image

结果和上面一样,Last-Modified有变化了。

 

呵呵,Last-Modified得到支持,将会为我们双方都节省许多带宽的。与Last-Modified类似的,就是Etag头。想详细了解什么是Last-Modified和Etag,可参考:如何利用客户端缓存对网站进行优化?

Technorati 标签: ,,,,
posted @ 2008-04-19 16:10 MK2 阅读(1558) 评论(7)  编辑 收藏 所属分类: C#&Asp.netC Web Design&W3C

  回复  引用  查看    
#1楼 2008-04-19 17:52 | kuafoo      
对于静态文件 是由IIS来检测文件日期来返回的 动态文件我想应该是程序自己检测 IIS检测的话 每次都有更新
  回复  引用  查看    
#2楼 2008-04-19 18:15 | Q.Lee.lulu      
路过
不懂
纯支持.... Orz
  回复  引用  查看    
#3楼 2008-04-19 18:24 | 蛙蛙池塘      
有了这个头,直接先发个head请求就可以知道RSS有没有更新了。
  回复  引用  查看    
#4楼 2008-04-19 19:01 | wingoo      
关于rss是否修改是根据什么来判定的?
缓存过期自动更改?还是说专门有个记录表来记录??
  回复  引用  查看    
#5楼 2008-04-19 20:50 | Kingthy      
主要是博客园的RSS是动态的并不是静态的XML文件.所以是不处理Last-Modified的.当然也可以做到,但这样做就要做很多处理.也即是有没有内容改变过.
  回复  引用  查看    
#6楼 2008-04-19 21:55 | BAsil      
顶一
  回复  引用  查看    
#7楼 2008-04-20 02:20 | 镜涛      
静态的文件通过时间戳来确定是否发生改变,对于动态的文件应该可以通过特定算法(例如下载中使用的MD5验证)计算是否发生改变!

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-04-19 20:35 编辑过


相关链接: