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

Rok*_*alj 8 url google-chrome

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

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

http://app.com/user/Rok/info
Run Code Online (Sandbox Code Playgroud)

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

http://app.com/user/../info
Run Code Online (Sandbox Code Playgroud)

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

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

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

gre*_*ser 7

我只是想为自己解决这个问题,看起来它在RFC 3986第5.2.4节中得到了具体解决:

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

[...]

请注意,点段旨在用于URI引用,以表示相对于基URI中名称层次结构的标识符.该remove_dot_segments算法通过删除额外的点段来尊重该层次结构,而不是将它们视为错误或让它们被解除引用实现误解.