【HTTPステータスコード】HTTPステータスコードはいくつある?よくみる404 Not foundの正体は?

サトリク

HTTPステータスコードの問題です。

永続的なリダイレクトを示すステータスコードとして、正しいものを選びなさい。

 A.101

 B.200

 C.301

 D.401

 E.404

引用元:HTML5プロフェッショナル認定試験レベル1

うーん、Eの404?

オコジョ

サトリク

違います。答えは、Cの301です。

上記の問題に即答できなかった方は、この記事で「HTTPステータスコード」についてマスターしましょう。

(この記事は、勉強のアウトプットとして執筆しています。筆者がプログラミング初心者ゆえ、致命的な誤りなどありましたらご指摘いただければ幸いです。)

 

HTTPステータスコードとは

HTTPステータスコードは、HTTPにおいてWebサーバからのレスポンスの意味を表現する3桁の数字からなるコードである。

ウィキペディア(Wikipedia)-(HTTPステータスコード)

簡単に言うと、HTTPリクエストが成功したかどうかを3桁の数字で表したものです。

サトリク

こちらの記事を先に読んでおいたほうがいいかもしれません。

【HTTPリクエストメソッドとは?】8つ覚えよう。GET、POST、PUT、DELETE、HEAD、OPTIONS、CONNECT、TRACについて。

HTTPステータスコードを知っていると、どんなエラーが起きたのか。どんな対応をしたらいいのだろうか。と言うのが瞬時にだいたいわかります。

例えば、HTTPステータスが、500だったら、サーバーのエラーと言うことがわかります。また、404だったら、URLが間違えていたり、そのページがもう存在しなかったりするのです。

 

HTTPステータスコードは、大きく5つに分けられます。

大まかなHTTPステータスコード

HTTPステータスコード 処理状態
100番台 処理中
200番台 成功
300番台 リダイレクト
400番台 クライアントエラー
500番台 サーバーエラー

HTTPステータスコード一覧表

x00番台でも大まかにわかりますが、もっと細かく示した表がこちらです。

表をスキップする

種類 番号(メッセージ) 意味 解説してるサイト

100番台

100 Continue 継続 リンク
101 Switching Protocols プロトコル リンク
102 Processing 処理中 リンク
103 Early Hints 早期のヒント リンク
200番台 200 OK OK リンク
201 Created 作成 リンク
202 Accepted 受理 リンク
203 Non-Authoritative Information 信頼できない情報 リンク
204 No Content 内容なし リンク
205 Reset Content 内容のリセット リンク
206 Partial Content 部分的内容 リンク
207 Multi-Status 複数のステータス複数のステータス リンク
208 Already Reported 既に報告 リンク
226 IM Used IM使用 リンク

300番台

300 Multiple Choices 複数の選択 リンク
301 Moved Permanently 恒久的に移動した リンク
302 Found 発見した リンク
303 See Other 他を参照せよ リンク
304 Not Modified 未更新 リンク
305 Use Proxy プロキシを使用せよ リンク
306 (Unused) 将来のために予約されている リンク
307 Temporary Redirect 一時的リダイレクト リンク
308 Permanent Redirect 恒久的リダイレクト リンク
400番台 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 Timeout リクエストタイムアウト リンク
409 Conflict 競合 リンク
410 Gone 消滅した リンク
411 Length Required 長さが必要 リンク
412 Precondition Failed 前提条件で失敗した リンク
413 Payload Too Large ペイロードが大きすぎる リンク
414 URI Too Long URIが大きすぎる リンク
415 Unsupported Media Type サポートしていないメディアタイプ リンク
416 Range Not Satisfiable レンジは範囲外にある リンク
417 Expectation Failed Expectヘッダによる拡張が失敗 リンク
418 I’m a teapot 私はティーポット リンク
421 Misdirected Request 誤ったリクエスト リンク
422 Unprocessable Entity 処理できないエンティティ リンク
423 Locked ロックされている リンク
424 Failed Dependency 依存関係で失敗 リンク
425 Too Early Early dataを受け入れない リンク
426 Upgrade Required アップグレード要求 リンク
428 Precondition Required 事前条件が必要 リンク
429 Too Many Requests 要求が多すぎる リンク
431 Request Header Fields Too Large リクエストヘッダーフィールドが大きすぎる リンク
451 Unavailable For Legal Reasons 法的理由により利用不可 リンク

500番台

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 容量不足 リンク
508 Loop Detected ループを検出 リンク
509 Bandwidth Limit Exceeded 帯域幅制限超過 リンク
510 Not Extended 拡張できない リンク
511 Network Authentication Required ネットワークに対する認証が必要 リンク

サトリク

HTTPステータスは、全部で64個もあります。

すげえ。こんなの絶対覚えれない。。

オコジョ

サトリク

いや、初心者は、流石に覚えなくていいよ笑代表的なものと、仕組みさえ覚えておけば大丈夫。

代表的なHTTPステータス

最低覚えておいたほうがいいものをピックアップして解説します。他は、すぐググればわかりますので、覚える必要はありません。

HTTPステータス200

200番は、成功です。

Webブラウザは、Webサーバにリクエストを送ります。そのリクエスト通りにしてくれると、200番になります。

WebブラウザとWebサーバのリクエストの関係については、以下の記事で詳しく解説しています。

【HTTPリクエストメソッドとは?】8つ覚えよう。GET、POST、PUT、DELETE、HEAD、OPTIONS、CONNECT、TRACについて。

HTTPステータス301

301番はリダイレクトです。

リダイレクトとは、あるページから別のページに転送することです。

例えば、ブログのドメインを変更したいという時にリダイレクトします。ドメインが変わると前のURLにアクセスした時、エラーになってしまいますよね。しかし、それはリダイレクトすることで解決できます。

サトリク

リダイレクトについての解説は、こちら

参考 リダイレクトとは?その種類や設定方法を解説します | デジmag.デジmag.

HTTPステータス404 Not Found

404番これは、有名ですね。

現在存在しないURLにアクセスするとこのエラーになります。

サトリク

このブログの404 Not Foundはこんな感じです。

404 Not Foundの画像

お探しのページは「すでに削除されている」、「アクセスしたアドレスが異なっている」などの理由で見つかりませんでした。以下でキーワードやカテゴリーから記事を探すことができます。と書いてあります。

404エラーは、「すでに削除されている」か、「アクセスしたアドレスが異なっている」時に起こります。

HTTPステータス500 Internal Server Error

500番は、サーバ側に何らかの問題が発生していることを示しています。

漫画ブログを運営していた頃に、一気に1000人のアクセスがあり、サーバが落ちたことがあります。

その時この500エラーでした。

HTTPステータス確認方法

HTTPステータスってどうやって確認するの?

オコジョ

サトリク

確認方法は、検証と、restclientツールの2パターンあります。

検証

Chromeだとわかりやすいです。windowsなら、f12、Macならcommand+shift+Cを押してみてください。

そうすると、chromeのデベロッパーツールが起動します。

Networkというタブを開いてその場でページを更新してみてください。

ディベロッパーツールの画像

Advanced REST client

HTTPステータスや、APIの状況を確認するツールがGoogleChromeの拡張機能にあります。

Advanced REST clientをダウンロードする

サトリク

仕事でもAPIの確認をするために使っています。 

やり方は、少し難しいので、以下の記事を参考にしてみてください。

参考 Advanced rest clientでログインしてAPIを叩く方法 - Qiita取得できませんでした

へぇ〜こんなので確認できるんだね。

オコジョ

再問題

では、もう一度答えてみましょう。

永続的なリダイレクトを示すステータスコードとして、正しいものを選びなさい。

 A.101

 B.200

 C.301

 D.401

 E.404

引用元:HTML5プロフェッショナル認定試験レベル1

 

リダイレクトと言うことは、300番台。

答えは、Cの301!

オコジョ

サトリク

正解!

まとめ

HTTPステータスコードまとめ
  • HTTPステータスとは、HTTPリクエストが成功したかどうかを3桁の数字で表したもの
  • 100番台は、処理中
  • 200番台は、成功
  • 300番台は、リダイレクト
  • 400番台は、クライアントエラー
  • 500番台は、サーバエラー
  • HTTPステータスコードの確認は、Chromeのデベロッパーツーか、ChromeのAdvance REST Clientで確認できる。

関連問題

【HTTPリクエストメソッドとは?】8つ覚えよう。GET、POST、PUT、DELETE、HEAD、OPTIONS、CONNECT、TRACについて。

オススメの参考書

HTTPステータスコードがわからない人に
URLを送りつけてあげよう

この記事のURLをコピーする

コメントを残す