200 OK ー カスタムメッセージについて
概要
ウェブページが表示されるプロセスは、ユーザーエージェント(ブラウザのことです)からのリクエストに対しサーバーがレスポンスを返す対話形式となっています。リクエストされたファイルが存在すればブラウザにウェブページなどが正常に表示されますが、何らかの理由によりリクエストに答えられない場合、あらかじめ定義されたコードでその理由をブラウザに返します。このコードはレスポンスの先頭に3桁で記述され、ステータスコードと呼ばれています(リクエストが正常に処理された場合でもステータスコードは返される)。
代表的なエラーである404 File not foundなどをサーバーデフォルトの無味乾燥な表示ではなく、サイトに合わせてデザインを変更することも可能です。
HTTP/1.1におけるStatus Code
HTTP/1.1についてはRFC2068及びRFC2616で定義されています。
次のように分類されています。
- 1xx Informational
- 暫定的なレスポンスで、テスト以外で用いてはいけない。
- 2xx Successful
- クライアントからのリクエストが成功したことを意味する。
- 3xx Redirection
- リクエストのあったページが移動していることを意味する。
- 4xx Client Error
- クライアントからのリクエストに間違いがあることを意味する。
- 5xx Server Error
- サーバが正常に処理をできない状態。
リクエストしたURLが正常に表示された場合、レスポンスコードは200もしくは304のどちらかになります( Not Modified がなぜ300番台に分類されているのかちょっと疑問ではありますが)。
コード | ステータス |
100 | Continue |
---|---|
101 | Switching Protocols |
200 | OK |
201 | Created |
202 | Accepted |
203 | Non-Authoritative Information |
204 | No Content |
205 | Reset Content |
206 | Partial Content |
300 | Multiple Choices |
301 | Moved Permanently |
302 | Found |
303 | See Other |
304 | Not Modified |
305 | Use Proxy |
307 | Temporary Redirect |
400 | Bad Request |
401 | Unauthorized |
402 | Payment Required |
403 | Forbidden |
404 | Not Found |
405 | Method Not Allowed |
406 | Not Acceptable |
407 | Proxy Authentication Required |
408 | Request Time-out |
409 | Conflict |
410 | Gone |
411 | Length Required |
412 | Precondition Failed |
413 | Request Entity Too Large |
414 | Request-URI Too Large |
415 | Unsupported Media Type |
500 | Internal Server Error |
501 | Not Implemented |
502 | Bad Gateway |
503 | Service Unavailable |
504 | Gateway Time-out |
505 | HTTP Version not supported |
・・・500番台のエラーはサーバがレスポンスを返すことそのものが不能の場合が多いので、カスタムメッセージを作る意味があるかどうか微妙(Gateway Time-outなんてそれこそ中継地点の判断だろ→プロキシにカスタムメッセージを仕込む、という考えはある)。