广告:
环境:asp.net 4.8 asp.net mvc 5.2.7
经典模式:(jpg、js、css文件访问有5分钟左右缓存时间,iis缓存期间直接读取缓存文件)
注意:handlers需要配置 path="*",不然静态文件不经过Application_BeginRequest事件
第一次访问:
1 经过httpModules管道 <httpModules>
<add name="HttpImageModule" type="Mvccom.HttpImageModule,Mvccom" />
</httpModules>
2 引发 Application_BeginRequest 事件
3 图片文件经过路由
4 读取文件
第二次访问:直接进入第4步,读取文件
第三次访问(如果5分钟),则重复第一次访问过程
集成模式:(jpg、js、css文件没有缓存)
注意: <modules runAllManagedModulesForAllRequests="true" > modules需要开启为true
第一次访问:
1 经过modules管道
<modules runAllManagedModulesForAllRequests="true" >
<add name="HttpImageModule" type="Mvccom.HttpImageModule,Mvccom" />
</modules>
2 引发 Application_BeginRequest 事件
3 图片文件经过路由
4 读取文件
第二次访问:重复第一次访问过程
第三次访问(5分钟后):重复第一次访问过程
总结:在图片防盗链过程中(iis经典模式5分钟缓存期内防盗链是不生效的,这可能是缓存的bug)
广告: