我注意到https://stackoverflow.com//////////questions/4659504/是有效的网址。但是https://www.google.com//////////analytics/settings不是。 Web服务器技术中是否存在固有的差异来解释这一点?是否应该正确解释带有不必要斜杠的URL或者是否应该返回错误?
答案 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)
每个应用程序处理请求的方式都有所不同。如果您在应用请求之前设置应用程序以替换后续的斜杠,那么您应该没有任何问题。