IIS对于Web页中相对路径解析的问题

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:
  我们知道网页中的路径关系一般有两种情况,一是相对路径,一是绝对路径。今天在调试一个bug的时候,发现IIS对于相对路径的解析有些不一致的问题,害我调试了半天。那么到底是什么不一致呢?

    简单说一下Web页中路径的关系,前面说的绝对路径么没啥可说的,不过有两种情况。一是以protocol prefix开头的绝对路径,这是最绝对了,没有任何含混的东东;二是以"/"开头的绝对路径,这个嘛就是从服务器的根开始算,一般情况下也不会有太大的问题了。相对路径也是两种情况,一是向前定位的路径,一个"../"表示向上一个目录;二是向后定位的路径,这个就很简单了。

    上面那个路径规则在Cmd里面也同样有效,只是没有protocol prefix开头这种说法了,取而代之的是盘符了。比如当前目录C:\AAA\BBB\CCC\DDD\EEE>:
    C:\AAA\BBB\CCC\DDD\EEE>cd ../../../ enter
    C:\AAA\BBB>

    回来说IIS解析路径的问题,我们知道URL路径的目录分格符是:"/"。当我们访问的一个页面的URL是:
    http://www.cnblogs.com/birdshome/archive/2005/05/24/161375.html 的时候,如果我们在"/"随意再加一些"/",使用如下的URL: http://www.cnblogs.com/birdshome//archive///2005///05//24/161375.html,同样可以访问到这个页面,没有任何问题。显然这里IIS把连续的"/"给优化成一个"/"了,这样的处理似乎是没有什么大问题事情。

    可是当IIS在解析相对路径的时候,却是按一个"/"就是一级来解析 。这样如果我们在目录:../abc/ced中使用../就能回到目录../abc,可是如果是路径../abc//ced,我们使用../page.htm,却成了"../abc/page.htm"

    例如html代码为:<img src="../SiteCount.gif">,图片在上一级目录,我们使用URL: http://localhost/images/page.htm时图片完全可以正确的访问,可是当我们把URL改成:http://localhost/images//page.htm后。红叉叉就出来了,这时我们点右键看这个图片的属性,路径是:http://localhost/images/SiteCount.gif。不过,IIS向下搜索相对路径的处理没有这个问题。


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

目录
相关文章
|
1月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
100 3
|
10天前
|
JSON JavaScript 前端开发
蓝桥杯web组赛题解析和杯赛技巧
本文作者是一位自学前端两年半的大一学生,在第十五届蓝桥杯Web组比赛中获得省一和国三。文章详细解析了比赛题纲,涵盖HTML、CSS、JavaScript、Echarts和Vue等技术要点,并分享了备赛技巧和比赛经验。作者强调了多写代码和解题思路的重要性,同时提供了省赛和国赛的具体流程及注意事项。希望对参赛者有所帮助。
|
16天前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
52 4
|
15天前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
44 2
|
1月前
|
前端开发 开发者 容器
构建响应式Web界面:Flexbox与Grid布局的深度解析
【10月更文挑战第11天】本文深入解析了CSS3中的Flexbox和Grid布局,探讨了它们的特点、应用场景及使用方法。Flexbox适用于一维布局,如导航栏;Grid布局则适用于二维布局,如复杂网格。通过示例代码和核心属性介绍,帮助开发者灵活构建响应式Web界面。
52 5
|
3天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
16 2
|
1月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
66 0
|
1月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
52 0
|
1月前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
60 0
|
1月前
|
安全 Java 程序员
Collection-Stack&Queue源码解析
Collection-Stack&Queue源码解析
80 0

推荐镜像

更多