我正在内部反向代理中实现RFC 7239兼容forwarded
标头。简而言之,规范声明主机和组件的值应如下所示:
host
- 代理收到的主机标头的值by
- 面向代理接口的用户代理这两者之间有什么区别?如果我在地址http://myexampleserver.com
上有一台面向互联网的代理服务器,据我所知,主机和by都具有相同的价值?
答案 0 :(得分:1)
不,原始请求会将请求网站的DNS地址包含为host
标头,而不是代理的DNS地址。
RFC mentions此host
值的预期用途:
这可以用于例如原点 服务器,如果反向代理正在重写"主机"标题字段到 一些内部主机名。
所以,例如:
GET / http://example.com/foo
和Host: example.com
。Host: example.com
标头转换为Host: some-internal-foo
,并添加Forwarded: host=example.com;by=yourexampleproxy
标头,以便原始服务器可以检查它。