文章目录
简介
在互联网上,有各种代理服务器介入转发HTTP请求,但是也修改了报文格式,因此增加了额外的字段包含原始信息。
2014年,RFC7239 中定义了Forwarded这个http首部1字段,标准化了其格式和含义。
但是在这之前互联网上的代理服务器已经大量使用了X-Forwarded-* 系列首部,比如 X-Forwarded-For 、 X-Forwarded-Host 以及X-Forwarded-Proto这三个首部,其含义已经成为既成标准
Forwarded2
Forwarded 首部中包含了代理服务器的客户端的信息,即由于代理服务器在请求路径中的介入而被修改或丢失的信息。
这个消息首部会被用来进行调试和统计,以及生成基于位置的定制化内容,按照设计的目的,它会暴露一定的隐私和敏感信息,比如客户端的IP地址。所以在应用此消息首部的时候,需要将用户的隐私问题考虑在内。
语法
Forwarded: by=<identifier>; for=<identifier>; host=<host>; proto=<http|https>
- <identifier>
一个 identifier 显示了在使用代理的过程中被修改或者丢失的信息。它们可以是以下几种形式:
一个IP地址(V4 或 V6,端口号可选,ipv6 地址需要包含在方括号里面,同时用引号括起来),
语意不明的标识符(比如 “_hidden” 或者 “_secret”),
或者是 “unknown”,当当前信息实体不可知的时候(但是你依然想要说明请求被进行了转发)。 - by=<identifier>
该请求进