我遇到了http://foobar.com/something?#foo/bar.html
形式的网址,我将其解释为空查询字符串,后跟片段标识符" foo / bar.html&#34 ; (我正确地解析了吗?)
我不熟悉这种模式;什么是空查询字符串的意义?有必要吗?
(一些实证测试表明,服务这些网址的网站的行为是否与“#”字符是否存在相同,但我仍然不知道我是否遗漏了某些内容。 )
答案 0 :(得分:1)
考虑两个URI:
http://example.com/
http://example.com/?
由URI standard这两个http方案URI不等同:“规范化不应在其关联组件为空时删除分隔符,除非通过方案规范获得许可。例如,URI”{{3不能假设它等同于上面的任何例子。“这意味着允许HTTP服务器为两个不同的URI返回不同的内容。
但是,实际上,当包含空字符串查询时,大多数HTTP服务器都不会返回不同的内容。
当我在网上看到一个带有空查询的URI时,它只是一个HTML页面的工件,它使用相对URI导航到当前页面但删除了查询的内容。例如,http://example.com/a/b/c?d=e&f=g
可以指向相对URI ?
的链接,该链接将导航到http://example.com/a/b/c?
。