本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在API閘道中接收含有壓縮負載的API回應
在啟用壓縮功能上提出要求時API,用戶端可以透過指定具有支援內容編碼的Accept-Encoding
標頭來選擇接收特定格式的壓縮回應承載。
API閘道只會在滿足下列條件時壓縮回應承載:
-
傳入請求具有
Accept-Encoding
標頭以及支援的內容編碼與格式。注意
如果未設定標頭,則預設值與 RFC7231
中 *
的定義相同。在這種情況下,API閘道不會壓縮裝載。某些瀏覽器或用戶端可能會自動將Accept-Encoding
(例如Accept-Encoding:gzip, deflate, br
) 新增至已啟用壓縮功能的請求。這可以在API閘道中開啟裝載壓縮。如果沒有明確指定支援的Accept-Encoding
標頭值,APIGateway 就不會壓縮承載。 -
在上
minimumCompressionSize
設定API以啟用壓縮。 -
整合回應沒有
Content-Encoding
標頭。 -
整合回應承載的大小在套用適用的映射範本之後,大於或等於指定的
minimumCompressionSize
值。
API在壓縮承載之前,閘道會套用為整合回應設定的任何對應範本。如果整合回應包含Content-Encoding
標頭,APIGateway 會假設整合回應承載已經壓縮,並略過壓縮處理。
一個例子是示 PetStore API例和以下請求:
GET /pets Host: {petstore-api-id}.execute-api.{region}.amazonaws.com Accept: application/json
後端會使用類似下列內容的未壓縮JSON承載來回應要求:
200 OK [ { "id": 1, "type": "dog", "price": 249.99 }, { "id": 2, "type": "cat", "price": 124.99 }, { "id": 3, "type": "fish", "price": 0.99 } ]
要將此輸出作為壓縮有效負載接收,您的API客戶端可以按如下方式提交請求:
GET /pets Host: {petstore-api-id}.execute-api.{region}.amazonaws.com Accept-Encoding:gzip
用戶端會收到含有類似下列內容的Content-Encoding
標頭和GZIP編碼裝載的回應:
200 OK Content-Encoding:gzip ... ���RP� J�)JV �:P^IeA*������+(�L �X�YZ�ku0L0B7!9��C#�&����Y��a���^�X
壓縮回應承載之後,只有壓縮的資料大小會計入數據傳輸費。