以下网址是否应被视为功能相同?
http://example.com/foo?a=&b=
http://example.com/foo?a&b
当我编写的Drupal模块的用户分解并重写URI noticed时,代码有时会导致查询字符串部分由于某些底层PHP函数的意外方式而发生变化表现。例如:
parse_str("a&b", $values); print http_build_query($values);
a=&b=
这是我应该担心的吗?
编辑所以SO停止抱怨这个问题与另一个问题类似:问题是,假设“X的值没有”和“X的空值”是等价的,而不是“无价值”的样式是否安全在语法上是正确的(它是)。
答案 0 :(得分:1)
RFC 3986 Uniform Resource Identifier (URI): Generic Syntax除了应该处理像?
之类的字符之外,对查询字符串的结构没有任何说法。严格来说,您的两个示例网址 不同。当然,接收这些查询字符串的应用程序可能会将它们视为功能上等同,但这不是您可以从URL单独确定的内容。