サーバーはリクエストヘッダーを受け取りました。クライアントはボディを送信してください。
使いどころ
クライアントが Expect: 100-continue で問い合わせたときに自動的に送信されます。
知っておきたいこと
クライアントは大きなアップロードの前に Expect: 100-continue を送ります。これにより、ボディがネットワークを流れる前に、サーバーは 401 や 413 などで拒否できます。curl は大きめの POST や PUT のボディに自動でこのヘッダーを付けます。サーバーやプロキシがこれを正しく扱えない場合は、curl -H Expect: で無効にしてください。ブラウザーは Expect を送らないので、100 に出会うのは HTTP ライブラリやコマンドラインツールを使うときだけです。
サーバーが 100 を返さない場合、curl はデフォルトで 1 秒待ってから(--expect100-timeout)結局ボディを送信します。これが、一部のプロキシを経由するアップロードのたびに発生する原因不明の 1 秒の遅延として現れます。nginx はボディの読み込みを開始すると自動的に 100 を送り、Node.js は自分で処理できる checkContinue イベントを発行します。サーバーが 100 を省略して、すぐに最終ステータスを返すこともあります。
情報 (1xx)
1xx は情報レスポンスです。サーバーはリクエストを受け取っており、やり取りが続きます。ブラウザーや HTTP ライブラリが自動で処理します。
レスポンスでの表示
HTTP/1.1 100 Continue確認方法
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/