为了账号安全,请及时绑定邮箱和手机立即绑定

自定义HTTP标头:命名约定

自定义HTTP标头:命名约定

自定义HTTP标头:命名约定我们的几个用户要求我们在http标头我们发送给他们的请求,甚至他们从我们的API中得到的响应。添加自定义HTTP报头的一般约定是什么?命名, 格式..等。此外,您可以随意发布您在Web上偶然发现的任何智能使用这些信息;我们正尝试使用最好的目标来实现此功能:)
查看完整描述

3 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

这个问题值得重读.实际问到的问题与css属性中的供应商前缀不类似,因为将来的验证和考虑供应商支持和官方标准是合适的。实际询问的问题更类似于选择URL查询参数名称。没有人应该在乎他们是什么。但是自定义的名字间距是完全有效的-而且很常见,而且是正确的-这是要做的事情。

理由:
是关于开发人员之间关于自定义、特定于应用程序的标头的约定 -- "与其账户有关的数据“-与供应商、标准机构或由第三方实施的协议无关,只是有关开发人员只需避免可能由服务器、代理或客户端使用的标头名称。出于这个原因,“X-Gzip/Gzip”和“X转发-转发/转发-为”的例子是没有意义的。提出的问题是私有API上下文中的约定,类似于URL查询参数命名约定。这是一个偏好和名称间隔的问题;任何代理或供应商支持“X-ClientDataFoo”而不使用“X”显然是错误的。

没有什么特别或神奇的“X-”前缀,但它有助于明确它是一个自定义头。事实上,RFC-6648等人帮助支持使用“X-”前缀的理由,因为-由于HTTP客户端和服务器的供应商放弃了前缀-您的应用程序专用的、私有的API,个人数据传递机制正在变得更好地抵御名称空间与少量官方保留的标头名称的冲突。尽管如此,我个人的偏好和建议是更进一步。“X-ACME-ClientDataFoo”(如果您的小部件公司是“ACME”)。

IMHO IETF规范不够具体,无法回答OP的问题,因为它未能区分完全不同的用例:(A)供应商引入了新的、适用于全球的特性,例如“转发-for”。(B)应用程序开发人员向客户端和服务器传递特定于应用程序的字符串。规范只涉及前者,(A)。这里的问题是,是否有(B)项的公约。确实有。它们涉及按字母顺序将参数组合在一起,并将它们与许多标准相关的类型(A)标头分开。使用“X-”或“X-ACME-”前缀是方便和合法的(B),不与(A)冲突。供应商停止使用“X-”(A)的次数越多,(B)就会变得越清晰。

例子: 
谷歌(在不同的标准体系中有一定的分量)-到今天为止,在我的回答中有20141102个-目前正在使用“X-Mod-Pagspeed”来表示他们的Apache模块在转换给定的响应时所使用的版本。有人真的建议谷歌不要使用“X-”,而应该使用“Mod-Pagspeed”,或者让IETF来祝福它的使用吗?

摘要: 
如果您在应用程序中使用自定义HTTP标头(有时是Cookie的适当替代)将数据传递到或从您的服务器传递,并且这些标头明确地、不打算在应用程序上下文之外使用,则可以使用“X-”或“X-foo-”前缀来命名它们,这是一种合理的、常见的约定。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 2049 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信