我在服务器端找到了很多关于相对路径跟踪斜杠问题的答案,但在客户端没有。帮助我。
我正在编写一个网络抓取工具来统计一组网站,并遇到了问题。我正在使用的一个网站有一个导航栏,其中相对路径带有尾部斜杠,并且打算将这些路径视为绝对路径,如下所示:
第http://www.example.com/foo/bar
页上的
导航栏链接地址 - > foo/
,baz/
,quox/
预期绝对网址 - > http://www.example.com/foo/
,http://www.example.com/baz/
,http://www.example.com/quox/
问题是,据我所知,这是非标准行为 - 但Firefox和Chrome都将这些路径视为绝对路径。根据{{3}}和RFC 1808,这些应该像相对路径一样处理,如下所示:
spec-correct absolute urls - > 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中,RFC 2396根据规范处理这些。
更糟糕的是,有问题的服务器很乐意为这些路径返回200 OK,并且所有这些路径都有这个导航栏:所以我最终抓取http://www.example.com/foo/
这是与{{{1}相同的页面1}},http://www.example.com/foo/foo/
等,组合使用奇怪的网址,例如http://www.example.com/foo/foo/foo/
所以这就是问题所在:我是否遗漏了一些允许Chrome和Firefox将这些网址解释为绝对路径的内容?有没有办法消除规范正确且绝对路径是预期路径的情况?