链接/ HREF参数(以问号开始)是有效的?

这个链接是否有效?

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

我知道浏览器将其视为预期,我知道空的链接也可以 – 但是可以指定参数吗?

我很好奇,因为问号(“?”)只是大多数HTTP服务器(AFAIK)的约定,尽pipe我承认这是一个普遍的问题。

所以,回顾一下:

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

  2. 这是在RFC?

  3. 我可以使用这个问题吗?

更新:点击的预期行动是redirect到同一页面,但具有不同的GET参数(在上面的例子中“lang = en”)。

是的。
你可以在RFC 1808中find它- 相对统一资源定位符 :

在具有明确定义的基本URL的对象中
Base: <URL:http://a/b/c/d;p?q#f>
相对URL将被parsing如下:

5.1。 正常的例子

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

RFC 3986 – 统一资源标识符(URI):通用语法重述相同,并添加更多细节,包括语法:

 relative-ref = relative-part [ "?" query ] [ "#" fragment ] relative-part = "//" authority path-abempty / path-absolute / path-noscheme / path-empty #; zero characters 

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

是的 – 它会通过parameter passing当前url。

如果你想确保你不会跨越当前的页面/表单边界并且继续使用相同的ActionMethod或者使用不同的参数进行监听,那么使用它非常方便。