【发布时间】:2009-05-19 12:28:23
【问题描述】:
文档说 (http://code.google.com/appengine/docs/java/urlfetch/overview.html#Request_Headers):
App Engine 会根据需要将这些标头设置为准确的值
X-Forwarded-For 的值是否包含 gae 应用程序的某些身份?
【问题讨论】:
标签: google-app-engine urlfetch request-headers
文档说 (http://code.google.com/appengine/docs/java/urlfetch/overview.html#Request_Headers):
App Engine 会根据需要将这些标头设置为准确的值
X-Forwarded-For 的值是否包含 gae 应用程序的某些身份?
【问题讨论】:
标签: google-app-engine urlfetch request-headers
目前,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。
【讨论】:
www.showhttprequest.com 似乎不再存在,但这似乎仍然是应用引擎在 2/2014 时的行为。
如果你访问 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)
【讨论】: