ios - iOS 如何在 NSURLRequests 中设置 X-Forwarded-For header ?

标签 ios heroku http-headers

我有一个 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/

相关文章:

ios - 如果编译时间超过可接受的水平,我可以创建一个失败的单元测试吗?

node.js - Heroku/Nodejs 无法启动,at=错误代码=H10 desc="App

python - Pipfile.lock 已过期

ruby-on-rails - 使用 FCM gem RAILS 发送通知时出现身份验证错误

angularjs - Angular http 请求获取错误 : No 'Access-Control-Allow-Origin' header is

ios - 在iOS 9上禁用WiFi辅助UDP传输

ios - 如何在 iOS 应用程序中显示密码 View

java - 如何使用内容类型 XML 和查询参数触发 HTTP post?

node.js - 如何安全地将 Passport 与 Node.js 和 MongoDB 一起使用?

iphone - cellForRowAtIndexPath 返回空值