2012-03-19 67 views
5

在APP引擎API中提到,如果請求帶有"Accept-Encoding"集合,那麼它會自動壓縮響應。App引擎接受編碼

但是當我看到請求時,標題不在那裏。但在瀏覽器中,它已被設置。當我嘗試明確設置的頭部( JQuery ajax功能),還有一個消息:

Refused to set unsafe header "Accept-Encoding" 

但在本地主機工作時,這種情況是不存在的 - 要求有「接受編碼」標頭。這隻在發佈後纔會發生。但不允許明確地設置「接受編碼」。

我到處搜索,但找不到問題的解釋。這將是真正有用的,如果有人可以解釋...

回答

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

感謝您的回覆......但正如我之前所說的,我遇到的問題是在HTTPRequest標頭中,「Accept-Encoding」爲空。正如GAE所解釋的那樣,GAE無法識別是否壓縮。但正如我所解釋的,當我在localhost中工作時,「Accept-Encoding」不爲空。所以我在這裏有點困惑。 – KTB 2012-03-20 17:29:43

+0

奇怪的是,當我使用本地主機時,Accept-Encoding爲null,即使在IntelliJ中它在httpRequest中的調試期間顯示。但是,如果我使用getHeader(「Accept-Encoding」),它將返回null。顯然GAE必須去掉這個標題。 – AndroidDev 2018-01-29 16:32:36

3

我有一個類似的問題,在HTTPRequest頭,「接受編碼」爲空。正如GAE所解釋的,它會查找Accept-Encoding和User-Agent頭,如果它想壓縮。但就我而言,GAE無法識別是否壓縮。

從瀏覽器,然後設置標題,但在請求標題,它不是。