首页 > 解决方案 > HTTP 标头后面的命名约定

问题描述

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

首先,不推荐使用 X- 前缀并且不鼓励使用它。那会给我留下Correlation-Id。

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

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

这些东西有明确的指导方针吗?我告诉我的老板,对 HTTP 标头使用驼峰式不是最佳选择,但我找不到任何指导方针。

标签: resthttphttp-headers

解决方案


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

  2. 字段名称使用“token” ABNF,其中包含“-”。

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


推荐阅读