スクリプトで「失敗したら気づける・一時的な失敗なら数回やり直す」curl の定番の組み合わせ。
-f(–fail): HTTP 4xx/5xx のとき本文を出さず、終了コード 22 で失敗する。付けないとエラーページを受け取っても終了コード 0(成功扱い)-s(–silent): 進捗表示を消す。ただしエラーメッセージも消える-S(–show-error):-sと併用すると、エラーメッセージだけは出す--retry 3: 一時的な失敗なら 3 回までやり直す。待ち時間は 1 秒から倍々(指数バックオフ)--retry-connrefused: 接続拒否(ECONNREFUSED)もやり直しの対象にする
–retry が「一時的な失敗」とみなすもの
タイムアウト、HTTP 408 / 429 / 500 / 502 / 503 / 504 だけ。
接続拒否は含まれない。起動直後でまだポートを開いていないサーバーを叩くと即失敗するので、--retry-connrefused を足す。
- ECONNREFUSED: 相手のマシンには届いたが、そのポートで待ち受けているプロセスがいない、と OS が返すエラー