我们的一些用户要求我们将与其帐户相关的数据包含在我们发送给他们的请求的 HTTP header 中,甚至是他们从我们的 API 获得的响应中。 在命名、格式...等方面,添加自定义 HTTP header 的一般约定是什么。
另外,请随意发布您在网络上偶然发现的这些的任何巧妙用法;我们正在尝试使用最好的方法作为目标来实现这一点:)
最佳答案
建议是是他们的名字以“X-”开头。例如。 X-Forwarded-For
, X-Requested-With
. a.o.中也提到了这一点。 RFC 2047 的第 5 节.
更新 1:2011 年 6 月,第一个 IETF draft已发布以弃用对非标准 header 使用“X-”前缀的建议。原因是当以“X-”为前缀的非标准 header 成为标准时,删除“X-”前缀会破坏向后兼容性,迫使应用程序协议(protocol)支持这两个名称(例如,x-gzip
& gzip
现在是等效的)。因此,官方建议只合理地命名它们,不带“X-”前缀。
更新 2:2012 年 6 月,正式弃用使用“X-”前缀的建议 RFC 6648 .以下是相关的引用:
3. Recommendations for Creators of New Parameters
...
- SHOULD NOT prefix their parameter names with "X-" or similar constructs.
4. Recommendations for Protocol Designers
...
SHOULD NOT prohibit parameters with an "X-" prefix or similar constructs from being registered.
MUST NOT stipulate that a parameter with an "X-" prefix or similar constructs needs to be understood as unstandardized.
MUST NOT stipulate that a parameter without an "X-" prefix or similar constructs needs to be understood as standardized.
请注意,“不应”(“不鼓励”)与“不得”(“禁止”)不同,另请参见 RFC 2119有关这些关键字的另一个规范。换句话说,您可以继续使用带“X-”前缀的 header ,但官方不再推荐它,您绝对不能将它们记录为公共(public)标准。
总结:
- 官方建议只合理地命名它们,不带“X-”前缀
- 您可以继续使用“X-”前缀的 header ,但官方不再推荐它,您绝对不能将它们作为公共(public)标准来记录
关于http - 自定义 HTTP header : naming conventions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3561381/