什么是X-Forwarded-Proto
HTTP 标头值的完整规范?
3 回答
没有“完整规范”——它是事实上的标准。标X-
头名称前面的*通常将其表示为实验性/非标准/供应商特定。一旦它成为 HTTP 的标准部分,它就会丢失前缀。
IETF 有一些关于标准化的工作,但据我所知,它还处于草稿阶段。查看https://datatracker.ietf.org/doc/html/draft-ietf-appsawg-http-forwarded-10了解截至撰写本文时的最新草案。但是请注意,它可以在充实时随时更改,并且不要在生产中依赖它。
更新:
RFC 7239现在定义了Forwarded:
标头,旨在替换X-Forwarded-*
. 如果您关心标准,我建议您改用它。
*这曾经是官方的事情,但现在不再是。 RFC 6648不推荐使用X-
前缀约定。不幸的是,该约定是如此广为人知(并且弃用如此低调),以至于 IETF 以外的大多数人可能会忽略该建议。
最后是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
我不知道“完整规范”。
IETF APPSArea 工作组最近决定定义一个新的标头字段“Forwarded”,它应该替换您提到的“X-Forwarded-*”标头字段。
有关详细信息,请参阅https://datatracker.ietf.org/doc/html/draft-ietf-appsawg-http-forwarded。