100 Continue 【HTTP 100】

概要

100 Continue(HTTP 100)とは、WebサーバからWebブラウザなどのクライアントへ送られるHTTPステータスコードの一つで、クライアントから問い合わせを受けたリクエストの実行を許可するもの。HTTP 1.1以降で利用できる。

WebサーバとWebブラウザなどのクライアントの間ではHTTPHypertext Transfer Protocol)という通信規約(プロトコル)でデータ伝送を行っている。クライアントからの要求(リクエスト)に対してサーバは応答(レスポンス)を返すが、その際に現在の状態を示すHTTPステータスコードを通知する。

ステータスコードの100番台は「情報」(Informational)関連の用途に割り当てられており、100番は「Continue」、すなわち、クライアントがこれから実行しようとするリクエストをそのまま続行してよいことを伝達する。

この応答は、クライアントが何らかのリクエストを送信する際、事前にそのヘッダのみを送ってサーバに受け入れ可能かどうか問われた場合に返される。その場合、クライアントは送信可否の返答がほしいことを示すヘッダとして「Expect: 100-continue」という行を含めておく必要がある。

例えば、クライアントからPOSTメソッドで長大なデータをサーバに送信したい場合に、いきなり全体を送ってサーバに拒否されてしまうと無駄骨となるため、データ長などを記載したヘッダのみを送って送信可否を尋ね、サーバが受け入れ可能であれば100 Continueで応じる。この仕組みは巨大なデータの送信以外でも、事前にリクエスト可否を尋ねたい様々な状況で用いられる。

(2024.8.22更新)

HTTPステータスコード一覧

*1 302はHTTP/1.0では「Moved Temporarily」だった。
*2 413はHTTP/1.1では「Request Entity Too Long」、RFC 7231では「Payload Too Long」だった。
*3 414はHTTP/1.1では「Request-URI Too Long」だった。
*4 416はHTTP/1.1では「Requested Range Not Satisfiable」だった。
*5 418は1998年エイプリルフールのジョークRFC 2324で「I'm a teapot」として定義されていた。