使用没有值的GET参数(在URL中)是不好的做法? [英] Is it a bad practice to use a GET parameter (in URL) with no value?

查看:85
本文介绍了使用没有值的GET参数(在URL中)是不好的做法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我与我的老板在使用GET参数时没有任何价值有关URL的一点争论。例如

http://www.example.com/?logout



我经常在网上看到这种链接,但当然,这并不意味着这是一件好事。他担心这不是标准的,可能会导致意想不到的错误,所以他宁愿让我使用类似于以下内容的东西: $ b http:/ /www.example.com/?logout=yes



根据我的经验,我从来没有遇到任何使用空参数的问题,他们有时对我更有意义(比如在这种情况下,?logout = no 没有任何意义,所以注销的值是不相关的,我只会测试参数服务器端的存在,而不是其值)。 (它看起来更干净。)



然而,我无法确定这种用法实际上是否有效,因此确实不会造成任何问题。 p>

您是否有任何关于此的链接? 解决方案

RFC 2396,统一资源标识符(URI):通用语法,§3.4,查询组件是关于查询字符串的权威信息源,并声明:


查询组件是由
资源解释的一串信息。



[...]



在查询组件中,字符;,/,?,:,@,
&,=,+

RFC 2616,超文本传输​​协议 - HTTP / 1.1,保留所有权利。 §3.2.2,http URL,不重新定义。



简而言之,您给出的查询字符串(logout)是完全有效的。


I'm in a little argument with my boss about URLs using GET parameters without value. E.g.

http://www.example.com/?logout

I see this kind of link fairly often on the web, but of course, this doesn't mean it's a good thing. He fears that this is not standard and could lead to unexpected errors, so he'd rather like me to use something like:

http://www.example.com/?logout=yes

In my experience, I've never encountered any problem using empty parameters, and they sometimes make more sense to me (like in this case, where ?logout=no wouldn't make any sense, so the value of "logout" is irrelevant and I would only test for the presence of the parameter server-side, not for its value). (It also looks cleaner.)

However I can't find confirmation that this kind of usage is actually valid and therefore really can't cause any problem ever.

Do you have any link about this?

解决方案

RFC 2396, "Uniform Resource Identifiers (URI): Generic Syntax", §3.4, "Query Component" is the authoritative source of information on the query string, and states:

The query component is a string of information to be interpreted by the resource.

[...]

Within a query component, the characters ";", "/", "?", ":", "@", "&", "=", "+", ",", and "$" are reserved.

RFC 2616, "Hypertext Transfer Protocol -- HTTP/1.1", §3.2.2, "http URL", does not redefine this.

In short, the query string you give ("logout") is perfectly valid.

这篇关于使用没有值的GET参数(在URL中)是不好的做法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆