廣告:
環(huán)境:asp.net 4.8 asp.net mvc 5.2.7
經(jīng)典模式:(jpg、js、css文件訪問有5分鐘左右緩存時間,iis緩存期間直接讀取緩存文件)
注意:handlers需要配置 path="*",不然靜態(tài)文件不經(jīng)過Application_BeginRequest事件
第一次訪問:
1 經(jīng)過httpModules管道 <httpModules>
<add name="HttpImageModule" type="Mvccom.HttpImageModule,Mvccom" />
</httpModules>
2 引發(fā) Application_BeginRequest 事件
3 圖片文件經(jīng)過路由
4 讀取文件
第二次訪問:直接進入第4步,讀取文件
第三次訪問(如果5分鐘),則重復(fù)第一次訪問過程
集成模式:(jpg、js、css文件沒有緩存)
注意: <modules runAllManagedModulesForAllRequests="true" > modules需要開啟為true
第一次訪問:
1 經(jīng)過modules管道
<modules runAllManagedModulesForAllRequests="true" >
<add name="HttpImageModule" type="Mvccom.HttpImageModule,Mvccom" />
</modules>
2 引發(fā) Application_BeginRequest 事件
3 圖片文件經(jīng)過路由
4 讀取文件
第二次訪問:重復(fù)第一次訪問過程
第三次訪問(5分鐘后):重復(fù)第一次訪問過程
總結(jié):在圖片防盜鏈過程中(iis經(jīng)典模式5分鐘緩存期內(nèi)防盜鏈?zhǔn)遣簧У,這可能是緩存的bug)
廣告: