string realPath = app.Request.Path.Remove(0, app.Request.ApplicationPath.Length+1);
当我访问http://localhost/blog时, app.Request.Path与app.Request.ApplicationPath的值都是blog,这时上面的语句肯定会产生异常。这样的写法只考虑了http://localhost/blog/的地址形式,显然是不全面的。我进行了这样的修改,解决了问题:
string realPath="";
string appPath=app.Request.ApplicationPath;
string path=app.Request.Path;
if(!appPath.StartsWith("/"))
{
appPath = "/" + app;
}
if(!appPath.EndsWith("/"))
{
appPath += "/";
}
if(path.StartsWith(appPath))
{
realPath = path.Remove(0,appPath.Length);
}
string appPath=app.Request.ApplicationPath;
string path=app.Request.Path;
if(!appPath.StartsWith("/"))
{
appPath = "/" + app;
}
if(!appPath.EndsWith("/"))
{
appPath += "/";
}
if(path.StartsWith(appPath))
{
realPath = path.Remove(0,appPath.Length);
}
使用效果:
使用HttpCompressionModule自带的Fetch工具进行测试,测试结果如下:
测试结果说明:
第一行数据是未使用HttpCompressionModule的测试结果。
第二行数据是使用deflate压缩算法进行压缩后的测试结果。
第二列数据是Web服务器传递到浏览器的文件大小。很明显,压缩后传输数据大大减少,有效地节约了带宽。
TTFB—首字节平均响应时间(Gets the number of milliseconds that have passed before the first byte of the response was received.)
TTLB—末字节平均响应时间(Gets the number of milliseconds that passed before the last byte of the response was received. )
Transit—传输数据到浏览器的时间。
从测试结果可以看出, 采用HttpCompressionModule后访问速度有明显改善。