使用空查询字符串和片段标识符的url的重要性



我遇到了http://foobar.com/something?#foo/bar.html形式的URL,我将其解释为一个空查询字符串,然后是片段标识符"foo/bar.html"(我是否正确解析?)

我不熟悉这个模式;空查询字符串的意义是什么?有必要吗?

(一些经验测试表明,提供这些url的网站的行为是相同的,无论'?字符是否存在,但我仍然想知道我是否错过了一些东西。

考虑两个uri:

  1. http://example.com/
  2. http://example.com/?

根据URI标准,这两个http方案URI是不相等的:"规范化不应该删除分隔符时,他们的相关组件是空的,除非由方案规范授权这样做。例如,URI "http://example.com/?"不能被认为等同于上述任何一个例子。这意味着HTTP服务器可以为两个不同的uri返回不同的内容。

然而,在实践中,大多数HTTP服务器在包含空字符串查询时不会返回不同的内容。

当我在web上看到一个带有空查询的URI时,它只是HTML页面使用相对URI导航到当前页面的工件,但删除了查询的内容。例如,http://example.com/a/b/c?d=e&f=g可以有一个指向相对URI ?的链接,该链接将导航到http://example.com/a/b/c?

最新更新