Google App Engine 是否允許壓縮結果?例如,我有以下 curl 請求:
$ curl --location --request GET 'https://premiere-stage2.uk.r.appspot.com/' \
> --header 'Accept-Encoding: gzip, deflate, br'
并且回應沒有被壓縮。將此與以下內容進行比較:
$ curl --location -X GET 'https://google.com' --header 'Accept-Encoding: gzip, deflate, br'
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
或者,我需要設定一些手冊嗎?我認為最后的手段是在應用程式端點本身進行壓縮,還是需要這樣做?
uj5u.com熱心網友回復:
在評論中擴展 John Hanley 的建議,有兩個部分。
- 您必須
Accept-Encoding
在請求中設定標頭。 - 其次,回應本身應該具有適當的內容或 mime 型別,例如
text/html
或任何它需要的型別。如果 mime 型別不在某個串列中,Web 服務器通常會忽略壓縮。 - 第三,要確保請求和回應中的標頭都是正確的,您可以使用
-v
curl 中的標志。 - 最后,似乎內容需要超過一定的大小才能讓 Web 服務器費心壓縮它。因此,例如,如果內容長度為 3,它不會被壓縮,盡管我不確定這是什么。
把它們放在一起:
$ curl --location --request GET 'https://premiere-stage2.uk.r.appspot.com/html'
--header 'Accept-Encoding: gzip, deflate, br'
-v
參考:
- 卷曲
- GAE(有點隱藏,在 Go 檔案下)
uj5u.com熱心網友回復:
根據檔案
例如,服務器可能會根據 Accept-Encoding 請求標頭的值自動發送壓縮回應。應用程式本身不需要知道客戶端可以接受哪些內容編碼。
這給人的印象是應該的。但同樣的檔案也說
此外,從傳入請求中洗掉以下標頭,因為它們與客戶端和服務器之間的 HTTP 資料傳輸有關:
- 接受編碼
我針對我們的生產站點和 FireFox 進行了測驗,Web Developer Tool 顯示Accept-Encoding: gzip, deflate, br
為請求標頭和回應標頭content-encoding: gzip
但是,當我針對我們網站的 local/dev 進行測驗時,Web Developer Tool 顯示Accept-Encoding: gzip, deflate, br
為請求標頭,但回應標頭不包含content-encoding: gzip
. 此外,在 Flask/Python 中列印標題,給出的值為None
forAccept-Encoding
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/507762.html