我可以用“吗?”==&引用;在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 =)