我可以用“吗?”==&引用;在http查询字符串中?

我可以用“吗?”==&引用;在http查询字符串中?,http,query-string,Http,Query String,如果我有一个查询字符串,如: ?key1=val1&key2==val2 应该如何解析它 比如: 或 在这种情况下,键和值是什么 在查询字符串中允许有==序列吗 那么下面的查询字符串呢 ?key=val&===== 这在语法上正确吗 谢谢如果您尝试使用这样的查询字符串,我认为您可能会遇到特定于实现的行为,但至少就.NET而言,具体情况如下: key1=val1&key2==val2 key1 - val1 key2 - =val2 key=val&===

如果我有一个查询字符串,如:

?key1=val1&key2==val2
应该如何解析它

比如:

在这种情况下,键和值是什么

在查询字符串中允许有==序列吗

那么下面的查询字符串呢

?key=val&=====
这在语法上正确吗


谢谢

如果您尝试使用这样的查询字符串,我认为您可能会遇到特定于实现的行为,但至少就.NET而言,具体情况如下:

key1=val1&key2==val2

key1 - val1
key2 - =val2


key=val&=====

key - val
    - ====     (key is blank, value is four =)

因此,这基本上相当于在
&
上拆分查询字符串,然后在第一个
=

上拆分这些段。我认为在实践中,这将取决于您想使用它们做什么。我从未尝试过,但我认为如果您尝试读取
键2
,您将得到
=vale2
。我不知道关于语法规则,但我绝对反对。您试图实现什么?从PHP实现(
parse_str
和内部参数解析都使用)来看,
=
符号始终被视为分隔键和值的符号,系统级分隔符(通常是
&
)用于分隔对。因此,在第一种情况下,
key2
将是键,
=val2
将是值。在第二种情况下,最后一系列的
===
将被忽略,因为这里没有可提取的键。但是,我不确定所有查询解析器实现是否遵循相同的例程。这取决于实现,因为w3只提供了如何构建查询字符串()的建议。Java servlet中的行为相同(
HttpServletRequest.getParameter()
?key=val&=====
key1=val1&key2==val2

key1 - val1
key2 - =val2


key=val&=====

key - val
    - ====     (key is blank, value is four =)