gpt4 book ai didi

http - X-Original-For header : what's its purpose?

转载 作者:可可西里 更新时间:2023-11-01 16:10:48 25 4
gpt4 key购买 nike

在记录我的 Web 应用程序(在负载均衡器 + 防火墙后面)接收到的 HTTP header 时,我注意到我收到了 X-Original-For 和 X-Original-Proto header (除了传统的 X-Forwared-XXX header )。

他们的目的是什么?

最佳答案

简答:X-Original-*表示在 HttpContext.Connection 中收到的原始 header 值HttpContext.Request

长版:使用时Nginx/IIS/Apache设置反向代理,HttpContext.ConnnectionHttpContext.Request将更改为 X-Forwarded-* 中最左边的值 header ,X-Original-*标题用于保存原始HttpContext.ConnectionHttpContext.Request值(value)观:

  1. 原文HttpContext.Request.Scheme将保存为标题 X-Original-Proto: ... ,然后是 HttpContext.Request.Scheme将更改为 X-Forwarded-Proto: o1, o2, ... 标题中最左侧的方案
  2. 原文HttpContext.Request.Host将保存为标题 X-Original-Host: <original-host> ,然后是 HttpContext.Request.Host将更改为 X-Forwarded-Host: o1, o2, ... 标题中最左侧的主机
  3. 原文HttpContext.Connection.RemoteIpAddressHttpContext.Connection.RemotePort将保存为标题 OriginalForHeaderName: <original-endpoint> , 然后这个值会被改成X-Forwarded-For: o1, o2, ... header中最左边的IP和port

参见 source code of saving X-Original-For :

requestHeaders[_options.OriginalForHeaderName] = new IPEndPoint(connection.RemoteIpAddress, connection.RemotePort).ToString();

参见 source code of saving X-Original-Proto :

requestHeaders[_options.OriginalProtoHeaderName] = request.Scheme;

参见 source code of saving X-Original-Host :

requestHeaders[_options.OriginalHostHeaderName] = request.Host.ToString();

关于http - X-Original-For header : what's its purpose?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57759419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com