我和我的老板就使用没有价值的 GET 参数的 URL 有一点争论.例如
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
根据我的经验,我从未在使用空参数时遇到任何问题,而且它们有时对我更有意义(例如在这种情况下,?logout=no
没有任何意义,所以注销"的值是无关紧要的,我只会测试参数服务器端的存在,而不是它的值).(它看起来也更干净.)
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.
你有这方面的链接吗?
RFC 2396, "Uniform Resource Identifiers (URI): Generic Syntax", §3.4, "Query Component" 是关于查询字符串的权威信息来源,并声明:
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,超文本传输协议 -- HTTP/1.1",§3.2.2,http URL",没有重新定义.
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 中)是一种不好的做法吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!