HOME > 情報・技術 > BL@CKSTONE memo > HTTP Status Codes

HTTPステータスコード

Webページを閲覧していると,「404 Not Found」や「500 Internal Server Error」「503 Service Unavailable」といったエラーページを目にするかと思います。これは,何らかのエラーが発生してブラウザ画面に表示するメッセージですが,これらの数字にはそれぞれ意味があり,正式には「HTTPステータスコード」といいます。HTTPステータスコードには3桁の数字が割り当てられています。1桁目の数字は分類を表し,「4xx」がクライアントからのリクエストのエラー,「5xx」がサーバ上で発生したエラーを意味しています。また,エラーとして表示されないため,通常は目にすることはありませんが,「1xx」〜「3xx」も存在します。


分類

HTTPステータスコードは,「1xx」〜「5xx」の5つに分類されます。100番台,200番台は通常は意識することはないでしょう。300番台はページを引っ越した場合(URLが変更された場合),リダイレクトの設定をするときに見たことがあるかと思います。400番台はURLの間違い,パスワードの間違いなどクライアントからのリクエストに誤りがあった場合に発生します。500番台はプログラムの文法ミスや,アクセスが殺到した場合などサーバでリクエストが正常に処理できなかった時に発生します。


覚えておきたいコード

HTTPサーバの生ログを読む必要があるサーバ管理者であれば,日常的にHTTPステータスコードを目にしているでしょう。ここでは,サーバ管理者の諸兄姉向けでなく,Webサイトの企画者やデザイナーを対象に覚えておいて損はない「HTTPステータスコード」をご紹介します。


301 Moved Permanently

「301 Moved Permanently」はエラーでないため,Webページを閲覧しているだけでしたら目にすることはないでしょう。ブラウザ画面に表示することはありませんが,WebページもしくはWebサイト全体が引っ越しした場合(URLやドメインが変更になった場合),「.htaccess」ファイルに301リダイレクトを設定することはあるかと思います。

RewriteEngine on
RewriteRule ^index\.html$ index.php [R=301,L]

※「.htaccess」ファイルの設定例。index.htmlをindex.phpに301リダイレクト。


400 Bad Request

ブラウザから送信されたリクエストに問題があった場合に発生します。このエラーに遭遇することは,それほど多くはないかと思います。使用したブラウザに問題がある場合が多いので,他のブラウザ(他のバージョンを含む)でアクセスしたり,Cookieやキャッシュのクリア,プラグインの無効化を試してみてください。


401 Unauthorized

Basic認証やDigest認証などで,パスワードが間違っていた場合に表示されるエラーです。入力したID及びパスワードを再確認してください。サーバ側のパスワード設定が誤っている場合もあります。サーバの管理権限がある場合は,パスワード設定ファイルも確認してください。

403 Forbidden

ページが存在するものの,閲覧が禁止されたファイルもしくはディレクトリにアクセスした場合に表示されるエラーです。通常は,サイト管理者が意図してアクセス権を設定しています。まれに,サイト管理者の設計や設定のミス,非常にアクセスが集中している時,URLが間違っている場合もあります。時間をあけてアクセスしたり,URLを再確認してください。また,サーバの管理権限がある場合は,該当ファイルのパーミッションを見直してください(「.htaccess」ファイルでアクセス制御している場合もあります)。

404 Not Found

ページが削除されたり,引っ越しした場合(URLが変更された場合)に表示されるエラーです。比較的遭遇する確率が高いエラーです。もともと,存在しないページアクセスした場合もこのエラーが表示されます。URLを再確認してからアクセスしてください。サイト管理者の場合は,サーバにファイルをPUTし忘れていないか,誤ったディレクトリにファイルをPUTしていないか,誤ってページを削除していないか確認してください。

500 Internal Server Error

プログラム(スクリプト)の文法ミスや,プログラムがアクセスするファイルやディレクトリのパーミッションの設定に誤りがある場合に表示されます。プログラムのチェック,パーミッションの見直し,「.htaccess」の設定確認を行ってください。サーバ上の一時的な問題で,ブラウザーをリロードすると正常にページが表示される場合もあります。

503 Service Unavailable

サーバの負荷が限界を超えている場合や,サーバのメンテナンスでブラウザからのリクエストを受け付けることができない場合に表示するエラーです。レンタルサーバの場合,他の利用者がサーバに高負荷がかかるCGIを動かしている場合もあります。暫く時間をあけてからアクセスしてください。


コード一覧

1xx Informational

コード ステータス 説明
100 Continue クライアントはリクエストを継続できる
101 Switching Protocols サーバーはプロトコルを切り替えている
102 Processing 処理が継続されている

2xx Successful

コード ステータス 説明
200 OK リクエストが成功した
201 Created リクエスト完了(PUTメソッド)
202 Accepted リクエスト未完(PUTメソッド)
203 Non-Authoritative Information 非認定情報
204 No Content ブラウザ画面を更新しない
205 Reset Content ブラウザ画面を初期化する
206 Partial Conten レジューム(部分的GETリクエスト)
207 Multi-Status 複数のステータスが存在する
226 IM Used Delta encoding in HTTP の拡張ステータス

3xx Redirection

コード ステータス 説明
300 Multiple Choice リクエストに対して複数のレスポンスがある(それらからひとつを選択する)
301 Moved Permanently リクエストしたリソースが恒久的に異なるURIに移動
302 Found リクエストしたリソースが一時的に異なるURIに移動
303 See Other リクエストに対するレスポンスは異なるURIで発見(GETメソッド)
304 Not Modified リクエストしたリソースは更新されていない
305 Use Proxy (セキュリティの懸念により非推奨)
306 (unused) (未使用)
307 Temporary Redirect 一時的リダイレクト(リクエストのメソッドはリダイレクト前後で同じであること)
308 Permanent Redirect 恒久的リダイレクト(リクエストのメソッドはリダイレクト前後で同じであること)

4xx Client Error

コード ステータス 説明
400 Bad Request リクエストがサーバに理解されなかった
401 Unauthorized ユーザ認証に失敗した
402 Payment Required (未使用)
403 Forbidden アクセス権限がない
404 Not Found リクエストしたURLが存在しない
405 Method Not Allowed リクエストしたメソッドは不許可
406 Not Acceptable リクエストは受理できない
407 Proxy Authentication Required プロキシに対する認証が必要
408 Request Timeout リクエストが時間以内に完了していない
409 Conflict リクエストが現在のリソースと矛盾する
410 Gone リクエストしたリソースが存在しない
411 Length Required Content-Lengthのないリクエストの受理を拒否
412 Precondition Failed リクエストが不正であると評価された
413 Payload Too Large リクエスト実体がサーバーの想定よりも大きい
414 URI Too Long リクエストURIがサーバーの想定よりも大きい
415 Unsupported Media Type リクエストされたリソースがサーバでサポートしていないフォーマットである
416 Requested Range Not Satisfiable リクエストされたデータのサイズが超過した
417 Expectation Failed Expectヘッダによる拡張が失敗した
418 I'm a teapot (ジョークコード)
421 Misdirected Request リクエストはレスポンスを生成できないサーバーに送られた
422 Unprocessable Entity 意味が誤っているために従うことができない(WebDAVの拡張コード)
423 Locked アクセス中のリソースはロックされている(WebDAVの拡張コード)
424 Failed Dependency 依存関係でリクエストに失敗した(WebDAVの拡張コード)
426 Upgrade Required プロトコルのアップグレードを要求(Upgrading to TLS Within HTTP/1.1の拡張コード)
428 Precondition Required リクエストが条件付きになる(ロストアップデート問題の防止)
429 Too Many Requests 一定の時間内に大量のリクエストを送信した
431 Request Header Fields Too Large ヘッダーフィールドが大きすぎる
451 Unavailable For Legal Reasons 違法なリソース(政府によって検閲されたウェブページ)を要求した

5xx Server Error

コード ステータス 説明
500 Internal Server Error サーバ内部でエラーが発生
501 Not Implemented リクエストメソッドがサーバでサポートされていない
502 Bad Gateway ゲートウェイ・プロキシサーバは不正な要求を受け取った
503 Service Unavailable サービスが一時的に過負荷やメンテナンス中である
504 Gateway Timeout ゲートウェイとして動作するサーバが時間内にレスポンスを得られない
505 HTTP Version Not Supported リクエストがサポートされていないHTTPバージョンである
506 Variant Also Negotiates サーバー内部で設定エラーが発生した(Transparent Content Negotiation in HTTPの拡張コード)
507 Insufficient Storage リクエストを処理するためのストレージの容量が足りない(WebDAVの拡張コード)
508 Loop Detected リクエストの処理中に無限ループを検出した(WebDAVの拡張コード)
509 Bandwidth Limit Exceeded そのサーバに設定されている帯域幅を使い切った
510 Not Extended サーバーがリクエストを処理するために拡張が必要(An HTTP Extension Frameworkの拡張コード)
511 Network Authentication Required クライアントがネットワークでアクセスするために認証が必要

広告