今天我发现了一个有趣的Google Chrome行为。
假设我有一个网络应用程序,可以让我们看到有关用户的信息:
http://app.com/user/Rok/info
现在让我们假设我们有一个名为..
的用户。当我们访问他的信息页面时,
http://app.com/user/../info
您可以在开发者工具中看到浏览器向app.com/info
发出请求。
为什么浏览器会这样做?它应将此决定传递给服务器。
Novontays,URI不再直接绑定到文件系统。我想知道是否有针对此特定的规范。
答案 0 :(得分:6)
我只是想为自己解决这个问题,看起来它在RFC 3986, § 5.2.4中得到了明确解决:
伪代码也指
remove_dot_segments
例程 解释和删除特殊的.
和..
完整路径 引用路径中的段。这是在路径之后完成的 从参考中提取,无论路径是否相对,在 为了删除之前的任何无效或无关的点段 形成目标URI。[...]
请注意, dot-segments 旨在用于URI引用 表示相对于基础中名称层次结构的标识符 URI。
remove_dot_segments
算法遵循该层次结构 删除额外的点段而不是将它们视为错误或 让他们被解除引用实施误解。