Amazon SES(Simple Email Service)は、REST APIまたはSMTPのいずれかを使って利用されます。
このうち、「REST API経由で送信したときのレスポンスのbodyがgzip圧縮されるか?」という質問について、以下のように説明できます。
■ 結論
Amazon SES の REST API(v2含む)のレスポンスは、クライアントが gzip 圧縮をサポートしている場合に限り、gzip 圧縮される可能性があります。
つまり、HTTP ヘッダーで Accept-Encoding: gzip を付けてリクエストした場合に限り、レスポンスが gzip 圧縮されます。
■ 詳細
1. gzip圧縮される条件
-
クライアントがリクエストヘッダーに以下のように指定すると:
Accept-Encoding: gzip -
Amazon SES は、HTTP クライアントの要求に応じて gzip 圧縮されたレスポンスを返すことがあります。
-
これは Amazon SES 特有ではなく、Amazon API Gateway や他の AWS サービスの REST API に共通する挙動です。
2. 圧縮される内容
- 通常の成功レスポンス(たとえばメール送信成功時の MessageId など)や、エラーメッセージなどが対象です。
- gzip されるのは HTTP body(Content-Encoding: gzip) であり、HTTP ヘッダー自体は圧縮されません。
3. gzipかどうかを確認する方法
レスポンスヘッダーの Content-Encoding を確認してください:
Content-Encoding: gzip
このヘッダーがあれば、body は gzip 圧縮されています。
■ 実用的な注意点
- Java などで HTTP クライアントを使う場合(例:Apache HttpClient、OkHttp など)、多くのライブラリが自動的に gzip をサポートしており、解凍も自動で行います。
- 自前で解凍が必要な場合は
GZIPInputStreamなどで対応可能です。