App Engine接受编码

时间:2012-03-19 14:32:19

标签: google-app-engine httprequest

在APP Engine API中,提到如果请求附带"Accept-Encoding"设置,则会自动压缩响应。

但是当我查看请求时,标题不存在。但在浏览器中,它已设置。当我尝试显式设置标题(使用 JQuery ajax函数)时,会显示一条消息:

 Refused to set unsafe header "Accept-Encoding"

但是在本地主机中工作时没有出现这种情况 - 请求具有“Accept-Encoding”标头。这只有在发布后才会发生。但不允许始终明确地设置“Accept-Encoding”。

我到处搜索,但找不到问题的解释。如果有人可以解释那将是非常有帮助的。

2 个答案:

答案 0 :(得分:6)

您有两个不同的问题:

  1. App Engine不压缩回复。 GAE使用许多因素来确定是否需要压缩响应。它在决定时需要考虑内容类型和用户代理。请参阅Nick Johnson(来自GAE团队)的answer

  2. jQuery拒绝设置“Accept-Encoding”标头。请注意,这是一个jQuery问题,与GAE无关。请参阅:Is it possible to force jQuery to make AJAX calls for URLs with gzip/deflate enabled?

答案 1 :(得分:3)

我遇到与HTTPRequest标头类似的问题,“Accept-Encoding”为空。正如GAE所解释的那样,如果要压缩,它会查找Accept-Encoding和User-Agent标头。但就我而言,GAE无法识别是否要压缩。

在浏览器中,然后设置了标头,但在请求标头中,它不是。