Con*_*ens 125 url query-parameters
网址是否http://example.com/foo?bar有效?
我正在寻找一个官方的链接,说明这种或那种方式.一个简单的是/否答案或轶事证据不会削减它.
Ber*_*t F 94
该URI RFC没有强制要求查询字符串的格式.尽管认识到查询字符串通常带有名称 - 值对,但不需要(例如,它通常包含另一个URI).
3.4.询问
查询组件包含非分层数据,与路径组件(第3.3节)中的数据一起用于标识URI方案和命名权限(如果有)范围内的资源....
...但是,由于查询组件通常用于携带"key = value"对形式的标识信息,而一个常用值是对另一个URI的引用,...
HTML确定通过HTTP GET提交的表单应将表单值编码为"?key1 = value1&key2 = value2 ..."(正确编码)形式的名称 - 值对.解析查询字符串取决于服务器端代码(例如Java servlet引擎).
您没有确定您使用的服务器端框架(如果有),但您的服务器端框架可能假设查询字符串始终位于名称 - 值对中,并且可能会阻塞不是的查询字符串以那种格式(例如?bar).如果您自己的自定义代码解析查询字符串,您只需确保处理该查询字符串格式.如果它是一个框架,您需要查阅您的文档或只是测试它以查看它是如何处理的.
Mar*_*c B 75
他们完全有效.你可以认为它们相当于那些默默地站在暴徒信使身后的肌肉发达的家伙.这家伙没有名字,也没有说话,但他的存在传达了信息.
"http"方案用于通过HTTP协议定位网络资源.本节定义了http URL的方案特定语法和语义.http://www.w3.org/Protocols/rfc2616/rfc2616.html
http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
Run Code Online (Sandbox Code Playgroud)
所以是的,在问号之后任何事情都是有效的.您的服务器可能会有不同的解释,但有趣的是,您可以看到某些语言将其视为布尔值,如果列出则为true.
URI 规范的唯一相关部分是了解第一个和第一个符合查询规范定义的所有内容。它可以包含任何字符,例如. 这意味着诸如, 或 之类的查询字符串是有效的。?#[:/.?]?bar?ten+green+apples
在此处查找RFC 3986
isindex不是有意义的 HTML5。
它已被弃用,仅用作表单中的第一个元素,并且在没有名称的情况下提交。
如果条目的名称是“isindex”,其类型是“text”,并且这是表单数据集中的第一个条目,则将该值附加到结果并跳过该条目的其余子步骤,继续下一个条目(如果有),或者整个算法的下一步。
isindex 标志仅供传统使用。符合 HTML 文档的表单不会生成需要使用此标志集进行解码的有效负载。
上次支持 isindex 是 HTML3。它在 HTML5 中的使用是为了提供更简单的向后兼容性。
各库对这种 URI 格式的支持各不相同,但某些库确实提供旧版支持以方便使用isindex.
一些库(例如Perl 的 URI)提供了解析此类结构的方法
$uri->query_keywords
$uri->query_keywords( $keywords, ... )
$uri->query_keywords( \@keywords )
Sets and returns query components that use the keywords separated by "+" format.
Run Code Online (Sandbox Code Playgroud)
url(无特殊支持)作为另一个更常见的示例,node.js采用正常路线并简化解析为
parseQueryString)大多数其他 URI 解析 API 都遵循与此类似的内容。
parse_url遵循类似的实现,但仅返回查询的字符串。解析成requires对象k=>vparse_string()