link / href只是参数(以问号开头)有效吗?

时间:2011-10-24 06:13:09

标签: html url parameters get

这个链接有效吗?

<a href="?lang=en">eng</a>

我知道浏览器按预期处理它,我也知道empty link would be ok - 但是只指定参数是否可以?

我很好奇,因为问号(“?”)只是大多数HTTP服务器(AFAIK)的惯例,尽管我承认它是一个普遍的。

所以,回顾一下:

  1. 所有浏览器都会正确解释这个吗?

  2. 这是RFC?

  3. 我可以期待使用它吗?

  4. 更新:点击的预期操作是重定向到同一页面,但使用不同的GET参数(上例中为“lang = en”)。

2 个答案:

答案 0 :(得分:38)

是的,是的。
您可以在RFC 1808 - Relative Uniform Resource Locators中找到它:

  

在具有明确定义的基本URL的对象中        基数:<URL:http://a/b/c/d;p?q#f>
    相对URL将按如下方式解析:

     

5.1。正常例子

     

?y = <URL:http://a/b/c/d;p?y>

RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax重申相同的内容,并添加更多细节,包括语法:

relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

relative-part = "//" authority path-abempty
             / path-absolute
             / path-noscheme
             / path-empty     #; zero characters

现在,并不是说所有浏览器都按照标准实现它,但看起来这应该是安全的。

答案 1 :(得分:0)

是的 - 它将使用您传递的参数来点击当前网址。

在您希望确保不跨越当前页面/表单边界并继续点击相同的ActionMethod或任何正在使用不同参数进行侦听的情况下,使用它非常方便。