[导入]关于asp.net中的etag和LastModified等header的设置

    研究了下etag,看了网上的说明才大致知道这是一个用来标示一个文件的字符串,也是作为断点续传的标准,我曾进很大的程度上怀疑我的.vga文件不可用于这个有联系,现在总算知道不是。
    在.net中设置etag当然不能简单的调用appendHeader来添加,因为那样不能保证文件被改动后etag的变化(如果文件变动了而etag不变化,用户下载下来的文件就可能前一半是旧的,后一半是新的,那样就乱了),幸好,在asp.net中,提供了一个SetETagFromFileDependencies()方法可以让我们很方便的设置etag。
    首先必须指定本次输出(response)所依赖的文件,当这些文件中的一个变化之后,我们可能要认为后面的输出也会变化,所以也就应该让etag变化,这个过程ASP.NET中都提供了,而且用起来很方便
None.gif //首先指定对文件的依赖,如果依赖多个文件,可以依次添加,也可以通过AddFileDependencies()一次添加多个
None.gif
 Response.AddFileDependency(fileSpec);
None.gif 
//调用函数自动设置etag
None.gif
 Response.Cache.SetETagFromFileDependencies();
None.gif 
//调用函数自动设置最后更新时间
None.gif
 Response.Cache.SetLastModifiedFromFileDependencies();

就是这么简单,当依赖文件中的任何一个变化的时候,etag和LastModified都会变化。
    当etag设置好之后,就可以开始考虑断点续传的问题了。如果etag没有在header中设置好的话,浏览器或下载软件会认为服务器不支持断点续传。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值