rest - HTTP header 背后的命名约定

标签 rest http http-headers

我正在构建一个 API,我需要在消息通过我的系统时对其进行跟踪。为此,我计划使用 X-Correlation-Id HTTP header ,但这里遇到了问题。

首先,X- 前缀已​​被弃用并且不鼓励使用。这会给我留下 Correlation-Id。

其次,我打算使用连字符,但当我正在阅读 https://www.rfc-editor.org/rfc/rfc7230 时我意识到连字符没有在任何地方明确命名。 section-3.2.6提及排除的字符 - 这些字符不能用于 http header 分隔符?

第三,由于 HTTP header 不区分大小写,我是否应该将所有预期的 header 定义为小写?我这么问是因为我做的研究越多,我发现的变化就越多。有些 API 的 header 大写,有些则没有。有些使用连字符,有些使用下划线。

对于这些东西有明确的指导方针吗?我告诉我的老板,使用驼峰命名法作为 HTTP header 并不是最佳选择,但我找不到任何相关指南。

最佳答案

  1. 只要使用是私有(private)的,字段名称并不重要。如有疑问,请使用“应用程序名称”而不是“X”。

  2. 字段名称使用“标记”ABNF,并且包含“-”。

  3. 由于它们不区分大小写,因此您如何“定义”它们并不重要。如果有疑问,请使用与 HTTP 规范相同的约定。 CamelCase 尤其没有帮助,因为 HTTP/2(和 3)会将网络上的所有内容都小写。

关于rest - HTTP header 背后的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65903000/

相关文章:

java - json org.json.JSONException : Missing ';' in XML entity 中的 xml 解码问题

rest - 构建嵌套的 REST API

c# - [WCF][SyncFramework] 如何覆盖 GetWebRequest?

image - 我想为 flutter 上传图片添加带有 access_token 的 header

PHP session_start() 覆盖 HTTP Expires header

java - Spring Boot 安全 Rest API

python - 尝试使用 django rest 框架运行 django 时没有名为 http_client 的模块错误

ruby-on-rails - 如何消除 ActionController::UnknownHttpMethod 错误?

python - 如何使用 Python 2.7 通过多线程(异步下载)通过 HTTP 下载文件

c - NPAPI 插件不总是被调用