40

什么是X-Forwarded-ProtoHTTP 标头值的完整规范?

4

3 回答 3

35

没有“完整规范”——它是事实上的标准。标X-头名称前面的*通常将其表示为实验性/非标准/供应商特定。一旦它成为 HTTP 的标准部分,它就会丢失前缀。

IETF 有一些关于标准化的工作,但据我所知,它还处于草稿阶段。查看https://datatracker.ietf.org/doc/html/draft-ietf-appsawg-http-forwarded-10了解截至撰写本文时的最新草案。但是请注意,它可以在充实时随时更改,并且不要在生产中依赖它。

更新:

RFC 7239现在定义了Forwarded:标头,旨在替换X-Forwarded-*. 如果您关心标准,我建议您改用它。


*这曾经是官方的事情,但现在不再是。 RFC 6648不推荐使用X-前缀约定。不幸的是,该约定是如此广为人知(并且弃用如此低调),以至于 IETF 以外的大多数人可能会忽略该建议。

于 2012-10-28T17:15:31.047 回答
16

最后是RFC 7239 -从 2014 年 6 月开始的转发 HTTP 扩展。标头在第 5.4 节中定义。

一些例子:

Forwarded: proto=https
Forwarded: for=1.2.3.4;proto=http

我只是希望这不会花费太多时间来被广泛采用。由于缺乏标准而导致标题多样性的示例(来自此处):

  • X-Forwarded-Proto: https(事实上​​的标准)
  • X-Forwarded-Protocol: https
  • X-Forwarded-Ssl: on
  • X-Url-Scheme: https
  • Front-End-Https: on
于 2014-10-05T19:33:33.670 回答
2

我不知道“完整规范”。

IETF APPSArea 工作组最近决定定义一个的标头字段“Forwarded”,它应该替换您提到的“X-Forwarded-*”标头字段。

有关详细信息,请参阅https://datatracker.ietf.org/doc/html/draft-ietf-appsawg-http-forwarded

于 2012-10-30T15:53:19.507 回答