asp.net中Server.Transfer重定向到图片导致缓存机制失效解决方法
例如,直接请求图片时服务器响应的HTTP头如下:
引用内容
HTTP/1.1 200 OK
Content-Length: 48150
Content-Type: image/jpeg
Last-Modified: Tue, 18 Dec 2012 15:01:50 GMT
Accept-Ranges: bytes
ETag: "e119ee9b30ddcd1:1c48"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Sat, 06 Sep 2014 08:07:17 GMT
使用Server.Transfer重定向到图片:
<% Server.Transfer("/test.jpg") %>
服务器响应的HTTP头如下:
引用内容
HTTP/1.1 200 OK
Date: Sat, 06 Sep 2014 08:08:23 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 48150
Content-Type: text/html
Set-Cookie: ASPSESSIONIDCABATASQ=HCKPNPPAECAKPBJJNHOENINF; path=/
Cache-control: private
存在问题
·不能正确返回Content-Type的值image/jpeg;
·HTTP头缺少了Last-Modified和ETag,致使缓存机制失效;
这是Server.Transfer设计使然,应当无解。ASP.NET可以使用RewritePath代替它实现服务器端重定向。
您可能感兴趣的文章:
asp.net中Server.Transfer重定向到图片导致缓存机制失效解决方法
Server.Transfer()与Response.Redirect()区别分析
asp.net性能优化方法-其它
Asp.net 页面导航的几种方法
利用ASP.NET的三种缓存提高站点性能
浅谈redis的缓存穿透和缓存失效的预防和解决
asp.net性能优化方法-缓存数据和页输出
redis基础问答
ie浏览器的后退键失效修复方法
asp.net 提高网站速度及缓存