Chrome解析URI中的双点是什么原因?

时间:2013-12-09 17:32:39

标签: google-chrome url

今天我发现了一个有趣的Google Chrome行为。

假设我有一个网络应用程序,可以让我们看到有关用户的信息:

http://app.com/user/Rok/info

现在让我们假设我们有一个名为..的用户。当我们访问他的信息页面时,

http://app.com/user/../info

您可以在开发者工具中看到浏览器向app.com/info发出请求。

为什么浏览器会这样做?它应将此决定传递给服务器。

Novontays,URI不再直接绑定到文件系统。我想知道是否有针对此特定的规范。

1 个答案:

答案 0 :(得分:6)

我只是想为自己解决这个问题,看起来它在RFC 3986, § 5.2.4中得到了明确解决:

  

伪代码也指remove_dot_segments例程      解释和删除特殊的...完整路径      引用路径中的段。这是在路径之后完成的      从参考中提取,无论路径是否相对,在      为了删除之前的任何无效或无关的点段      形成目标URI。

     

[...]

     

请注意, dot-segments 旨在用于URI引用      表示相对于基础中名称层次结构的标识符      URI。 remove_dot_segments算法遵循该层次结构      删除额外的点段而不是将它们视为错误或      让他们被解除引用实施误解。