gpt4 book ai didi

api - HTTP URL 路径中分隔符的最佳实践

转载 作者:可可西里 更新时间:2023-11-01 15:19:06 29 4
gpt4 key购买 nike

在 HTTP URL 路径中使用各种标点符号是否不明智?我正在为 API 定义资源 URL。这些资源 URL 必须由各种客户端和中间件访问、存储和传输,因此它们不包含可能导致问题的字符很重要。

RFC 3986, section 2.2. "Reserved Characters"将以下字符指定为子分隔符:!$&'()*+,;=

在 HTTP 方案的 URL 路径中任意使用这些是否违法?

即使根据标准它们是合法的,但由于不合规的软件,它们中的任何一个是否很有可能导致现实世界的互操作性问题?

是否有您之前在广泛部署的 API 中毫无问题地使用过的特定子指令(这将证明您使用的是安全的)?

动机是我们需要分隔没有层次语义的键值对。我们正在考虑这样做:http://doriantaylor.com/policy/http-url-path-parameter-syntax .然而,如果这可能是个问题,我们就做 http://example.com/key1/value1/key2/value2

谢谢

最佳答案

无论走哪条路,都要确定;更改 API 可能会出现问题,即使指定了版本。为同一资源设置多个位置是坏主意 - 应该有一个规范位置。虽然理论上您可以使用 HTTP 301 重定向,但如果您担心兼容性,最好避免使用。

Dorian Taylor 集合方案看起来很合理(并且完全合法),并且不应该与任何系统(或任何没有严重错误的系统)产生任何兼容性问题。

如果您的 URL 需要用作新 URL 中的参数,则正斜杠和等号必须是 percent encoded ,但这对于标准查询字符串 (?&=) 和您建议的替代方案以及 ://(如果包含协议(protocol))都是如此。显然,如果您想在您的值中使用 ;,=,您需要对它们进行编码。

我能看到的唯一可能的问题是您的 URL 是否存储在 CSV 中,但 CSV 库很常见并且引用特殊字符定义明确。

关于api - HTTP URL 路径中分隔符的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7128317/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com