【问题标题】:App Engine Accept-EncodingApp Engine 接受编码
【发布时间】:2012-04-04 01:11:59
【问题描述】:

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

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

 Refused to set unsafe header "Accept-Encoding"

但是在本地主机中工作时不会发生这种情况 - 请求具有“Accept-Encoding”标头。这仅在发布后发生。但不允许明确设置“接受编码”总是发生。

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

【问题讨论】:

    标签: google-app-engine httprequest


    【解决方案1】:

    你有两个不同的问题:

    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?

    【讨论】:

    • 感谢您的回复...但正如我之前所说,我遇到的问题是在 HTTPRequest 标头中,“Accept-Encoding”为空。因此,正如 GAE 所解释的,GAE 无法识别是否进行压缩。但正如我所解释的,当我在 localhost 中工作时,“Accept-Encoding”不为空。所以我在这里有点困惑。
    • 奇怪的是,当我使用 localhost 时,Accept-Encoding 为空,即使在 IntelliJ 中它在 httpRequest 的调试期间显示。但是如果我使用 getHeader("Accept-Encoding"),它会返回 null。显然 GAE 必须去掉这个标题。
    【解决方案2】:

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

    从浏览器,然后设置了header,但是在请求头中,却没有。

    【讨论】:

      猜你喜欢
      • 2015-03-16
      • 2015-07-18
      • 2012-11-13
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 2011-10-29
      相关资源
      最近更新 更多