意味
サーバーがリクエストヘッダーを受け取ったので、クライアントはボディの送信を続けてよいという意味です。最終ステータスの前に送られる暫定レスポンスです。
よくある原因
- 大きなアップロードの前にクライアントが Expect: 100-continue を送った
- curl は 1 KB を超える POST ボディに Expect: 100-continue を付ける
- プロキシやサーバーがボディを受け付けると確認した
対処法
クライアント・閲覧者の場合
対処は不要です。100 を待ってからボディを送ります。サーバーが応答しない場合は短いタイムアウト後にボディを送るか、Expect ヘッダーを外します(curl -H 'Expect:')。
サイトや API の運営者の場合
多くのサーバーは 100 を自動で送ります。認証や Content-Length などのヘッダーを先に検証し、どうせボディを拒否するなら 100 ではなく最終エラー(401、413)を返します。
レスポンス例
HTTP/1.1
HTTP/1.1 100 Continue 仕様
よくある質問
› ブラウザーのネットワークタブで 100 Continue は見えますか?
通常は見えません。ブラウザーは Expect: 100-continue を送らず、暫定レスポンスも表示されません。100 に出会うのは主に curl、SDK、アップロードクライアントです。
› 100 Continue は最終レスポンスですか?
いいえ。情報レスポンスです。ボディ受信後、サーバーは 200、201、413 などの最終ステータスを必ず返します。