bsh*_*nks 6 api url uri http urlencode
在HTTP URL路径中使用各种标点符号是不明智的吗?我正在为API定义资源URL.这些资源URL必须由各种客户端和中间件访问,存储和传输,因此重要的是它们不包含可能导致问题的字符.
RFC 3986,第2.2节."保留字符"将以下字符指定为子字符:!$&'()*+ ,; =
在HTTP方案中的URL路径中是否有任何非法任意使用?
即使它们根据标准是合法的,由于不兼容的软件,这些中的任何一个很有可能导致实际的互操作性问题吗?
在广泛部署的API中是否存在您之前使用过的任何特定子delim(这可以证明您使用的是安全的)?
动机是我们需要划分没有分层语义的键值对.我们正在考虑这样做:http://doriantaylor.com/policy/http-url-path-parameter-syntax.但是,如果这可能是一个问题,我们将只做http://example.com/key1/value1/key2/value2
谢谢
无论你走哪条路,都要坚定不移;即使指定了版本,更改 API 也可能会出现问题。对于同一资源有多个位置是一个坏主意- 应该有一个规范位置。虽然理论上您可以使用 HTTP 301 重定向,但如果您担心兼容性,最好避免使用。
多里安泰勒集方案看起来合理(并且完全合法),并且不应该给任何系统(或任何没有很大缺陷的系统)带来任何兼容性问题。
如果您的 URL 需要用作新 URL 中的参数,则正斜杠和等于必须进行百分比编码,但这对于标准查询字符串 ( ?&=
) 和您建议的替代方案以及://
协议是否为包括。显然,如果您想在值中使用,;,=
则需要对它们进行编码。
我能看到的唯一可能的问题是,您的 URL 是否存储在 CSV 中,但 CSV 库很常见,并且对特殊字符的引用也有明确定义。
归档时间: |
|
查看次数: |
3245 次 |
最近记录: |