Bra*_*och 10 uri http url-encoding
在历史上的某个时刻,服务器端语言开始调整urlencoded参数,以添加对作为数组和键/值对象提交数据的支持:
// key/value pairs
contact[name]=John
contact[phone]=800-555-1234
// arrays
foo[]=bar
foo[]=baz
Run Code Online (Sandbox Code Playgroud)
我在一个库的嵌套参数解析中玩一些边缘情况,例如保存参数顺序.是否存在规范服务器应如何处理此编码的规范?如果没有,哪个参考实现引入了这种语法?
URI 中的方括号
根据RFC-3986“统一资源标识符 (URI):通用语法”,不允许在 URI 中使用未编码的方括号。因此它不是 HTTP 标准。
由 Internet 协议文字地址(版本 6 [RFC3513] 或更高版本)标识的主机通过将 IP 文字括在方括号(“[”和“]”)内来区分。这是 URI 语法中唯一允许使用方括号字符的地方。
许多编程语言都对数组使用方括号,因此我猜想在 URI 中使用方括号是很自然的事情。
是否有规范规定服务器应如何处理此编码?
不,至少不是独立于语言的。
第一次实施
许多 Web 应用程序框架允许在查询中重用相同的键来创建数组,例如http://example.org/?foobar=hello&foobar=world。这些框架还允许在键中使用方括号,但这没有什么区别,它们只是名称的一部分。很少支持关联数组。(警告:我并不熟悉所有这些语言。)
到目前为止,PHP 是我发现的唯一一种无需自定义代码即可支持 URL 中关联数组的语言。
| 归档时间: |
|
| 查看次数: |
1478 次 |
| 最近记录: |