この記事の内容は
curl 7.52.1
gzip 1.6
GNU bash, version 4.4.12(1)-release
で動作することを確認しました。
curlコマンドオプションの説明
curl - How To Use
レスポンス
curl --compressed url
- curlはwebサーバーへ
Accept-Encoding
ヘッダーを設定してリクエストを送る -
Accept-Encoding
ヘッダーには、curlが対応する圧縮方式のリスト(gzip, deflate,...など)が書かれている - サーバーは対応していれば、コンテンツ(レスポンスボディ)を圧縮して応答を返す
- サーバーはレスポンスに
Content-Encoding
ヘッダーを含める -
Content-Encoding
には使用された圧縮形式が書かれる - curlは圧縮されたコンテンツを解凍して出力する
サーバーから送信されたgzipを解凍せずそのまま欲しい
curl --compressed --raw url
圧縮されたままのレスポンスデータが欲しい場合は、rawオプションを追加すればcurlは自動で解凍しない。
リクエスト
gzip -c src | curl -X POST --data-binary @- -H "Content-Encoding: gzip" url
POSTするデータが大きすぎる場合は、Argument list too longエラーになる場合がある。そのときは標準入力から渡す。
--data-binary @-
https://qiita.com/aosho235/items/d89bb027db0c5662d8c5
@
ファイルから渡す
-
標準入力