相对路径的斜杠后面应该遵循哪些规则?

3
我在服务器端找到了很多关于相对路径的答案,但是在客户端上没有找到。帮我解决一下。
我正在编写一个网络爬虫来统计一组网站的数据,但遇到了一个问题。我正在处理的一个网站有一个带有斜杠的相对路径导航栏,并且希望将这些路径视为绝对路径,如下所示:
在页面 http://www.example.com/foo/bar 导航栏链接地址 -> foo/baz/quox/ 预期的绝对URL -> http://www.example.com/foo/http://www.example.com/baz/http://www.example.com/quox/ 问题是,据我所知,这是非标准行为 - 然而Firefox和Chrome都将这些路径视为绝对路径。根据RFC 1808RFC 2396,应该将它们处理为相对路径,如下所示:
规范正确的绝对URL -> http://www.example.com/foo/foo/http://www.example.com/foo/baz/http://www.example.com/foo/quox/ 特别是在RFC 1808的第5.1节和RFC 2396的C.1节中,第4个示例显示了这种情况被特别处理为相对路径。在我编写网络爬虫的Ruby中,Addressable gem根据规范处理这些内容。
更糟糕的是,所涉及的服务器可以返回这些路径的200 OK,并且所有路径都有这个导航栏:因此我最终会爬行 http://www.example.com/foo/,这与 http://www.example.com/foo/foo/http://www.example.com/foo/foo/foo/等页面相同,组合成奇怪的URL,如 http://www.example.com/foo/baz/quox/foo/
所以问题来了:我是否错过了一些允许Chrome和Firefox将这些URL解释为绝对路径的东西?有没有办法消除规范正确且绝对路径是所需路径的情况?
1个回答

1
在元素内定义了标记,用于指定页面中相对路径的基本URL。RFC-1808

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接