URL中不必要的斜杠是不是很糟糕?

时间:2011-01-11 15:49:44

标签: url http-headers

我注意到https://stackoverflow.com//////////questions/4659504/是有效的网址。但是https://www.google.com//////////analytics/settings不是。 Web服务器技术中是否存在固有的差异来解释这一点?是否应该正确解释带有不必要斜杠的URL或者是否应该返回错误?

4 个答案:

答案 0 :(得分:4)

首先,添加斜杠会像任何其他角色一样更改URL路径的语义。因此,根据定义,/foo/bar/foo//bar不等同,/foo/bar/foo/bar/不等同。

但由于URL路径主要用于直接映射到文件系统,因此Web服务器通常会删除空路径段(Apache会这样做),以便处理/foo//bar/foo/bar 等效。但这不是预期的行为;它更适合纠错。

答案 1 :(得分:2)

它们都是有效的网址 但是,谷歌的服务器无法处理第二个。

没有特别的理由要么处理或拒绝带有重复斜杠的网址;你应该把更多的时间花在更重要的事情上。

答案 2 :(得分:1)

您认为“正确解释”是什么? HTTP只是真正指定了解释服务器名称后斜杠前面的内容。其余部分完全取决于Web服务器。它会解析您在该点之后给出的内容(以任何方式),并向您展示它为该文本提供的HTML。

答案 3 :(得分:0)

每个应用程序处理请求的方式都有所不同。如果您在应用请求之前设置应用程序以替换后续的斜杠,那么您应该没有任何问题。