我在服务器端找到了很多关于相对路径跟踪 - 斜杠问题的答案,但在客户端没有找到答案。在这里帮助我。URL:遵循相对路径和尾部斜杠的规则
我正在编写一个网络爬取器来统计一组网站,并且遇到问题。一个网站我工作有尾随斜线相对路径导航栏一个,并打算这些路径被视为绝对的,就像这样:
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都汉将这些路径视为绝对的。在第5.1节中RFC 1808和C.1>http://www.example.com/foo/foo/
,http://www.example.com/foo/baz/
,http://www.example.com/foo/quox/
特别 -
SPEC-正确绝对URL:根据RFC 1808,并RFC 2396,这些应象相对路径处理,这样在RFC 2396中,第四个例子显示了这种情况被明确视为相对路径。在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都将这些网址解释为绝对路径?有什么方法可以消除规范正确,绝对路径是预期的情况?