我有一个 iOS 应用程序可以调用我在 heroku 上托管的 python 服务器。
我可以在服务器上观察到,当我形成 NSURLRequest
时,传入请求中包含 X-Forwarded-For
header 。
但是,在 iOS 应用程序中,日志记录 request.allHTTPHeaderFields
仅显示我明确添加到请求中的 header 。它不包括 X-Forwarded-For
header 。
有谁知道 iOS 是否在发送请求之前附加了这个 header ,或者它是由我的 ISP 提供商或 heroku 附加的,还是黑魔法?
从日志记录/调试的角度来看,我可以假设与 X-Forwarded-For
header 关联的 IP 地址代表一个唯一用户吗?如果不是,我应该如何解释该 IP 地址?
注意 - 除了调试之外,我不会尝试将此 header 中的值用于任何其他用途,我已经阅读了一些尝试使用此 header 进行身份验证等的危险。
最佳答案
这个 header 不是由 iOS 发送的,它是由 Heroku 以及一些 other headers 添加的
一般来说,如果请求被代理(link),它由网络服务器添加。
在简单的情况下,X-forwarded-for
将包含客户端公共(public) IP 地址。
如果请求在到达 Heroku 之前被代理,那么 X-forwarded-for
将包含一个以逗号分隔的列表,第一个元素将是客户端公共(public) IP 地址,接下来的项目是代理公共(public) IP 地址。
关于ios - iOS 如何在 NSURLRequests 中设置 X-Forwarded-For header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28639080/