Google App Engine URL Fetch 为 X-Forwarded-For 标头设置的值是多少?

Posted

技术标签:

【中文标题】Google App Engine URL Fetch 为 X-Forwarded-For 标头设置的值是多少?【英文标题】:What is the value set for X-Forwarded-For header by Google App Engine URL Fetch? 【发布时间】:2009-05-19 12:28:23 【问题描述】:

文档说 (http://code.google.com/appengine/docs/java/urlfetch/overview.html#Request_Headers):

App Engine 会根据需要将这些标头设置为准确的值

X-Forwarded-For 的值是否包含 gae 应用程序的某些身份?

【问题讨论】:

【参考方案1】:

目前,URLFetch 发出的请求中似乎未设置 X-Forwarded-For。

您可以通过访问 http://shell.appspot.com/ 并为响应 HTTP 请求的站点执行 URLFetch 来亲自验证这一点 - 例如,http://www.showhttprequest.com/。 App Engine 将用户代理字符串设置为“AppEngine-Google; (+http://code.google.com/appengine)”,但根本没有设置 X-Forwarded-For。

【讨论】:

这个答案被标记为正确但最新状态可以在ade的answer看到 网站www.showhttprequest.com 似乎不再存在,但这似乎仍然是应用引擎在 2/2014 时的行为。【参考方案2】:

如果你访问 shell.appspot.com 并运行以下代码:

from google.appengine.api import urlfetch
url = 'http://www.showhttprequest.com/'
result = urlfetch.fetch(url)
print result.content

您会看到(截至 2009 年底的某个时间)AppEngine 现在将 appid 放入用户代理标头中。所以你的用户代理最终看起来像:

AppEngine-Google; (+http://code.google.com/appengine; appid: shell)

【讨论】:

以上是关于Google App Engine URL Fetch 为 X-Forwarded-For 标头设置的值是多少?的主要内容,如果未能解决你的问题,请参考以下文章

Google App Engine PHP灵活环境中的URL处理程序

获取文件的公共 URL - Google Cloud Storage - App Engine (Python)

Google App Engine Node.js 应用程序 - “解析 app.yaml 时出错:未知 url 处理程序类型”

上传属性 Google App Engine - app.yaml

NotAllowedError 在 Google App Engine 中使用 users.create_login_url

Google App Engine 和 404 错误