RFC 7239 - 'by'和'host'之间的区别

时间:2016-02-22 15:16:14

标签: http proxy rfc

我正在内部反向代理中实现RFC 7239兼容forwarded标头。简而言之,规范声明主机和组件的值应如下所示:

  • host - 代理收到的主机标头的值
  • by - 面向代理接口的用户代理

这两者之间有什么区别?如果我在地址http://myexampleserver.com上有一台面向互联网的代理服务器,据我所知,主机和by都具有相同的价值?

1 个答案:

答案 0 :(得分:1)

不,原始请求会将请求网站的DNS地址包含为host标头,而不是代理的DNS地址。

RFC mentionshost值的预期用途:

  

这可以用于例如原点      服务器,如果反向代理正在重写"主机"标题字段到      一些内部主机名。

所以,例如:

  • 用户代理通过代理http://example.com/foo请求http://yourexampleproxy/。请求将包含GET / http://example.com/fooHost: example.com
  • 您的代理按配置将Host: example.com标头转换为Host: some-internal-foo,并添加Forwarded: host=example.com;by=yourexampleproxy标头,以便原始服务器可以检查它。