サトリク
HTTPステータスコードの問題です。
永続的なリダイレクトを示すステータスコードとして、正しいものを選びなさい。
A.101
B.200
C.301
D.401
E.404
うーん、Eの404?
オコジョ
サトリク
違います。答えは、Cの301です。
上記の問題に即答できなかった方は、この記事で「HTTPステータスコード」についてマスターしましょう。
(この記事は、勉強のアウトプットとして執筆しています。筆者がプログラミング初心者ゆえ、致命的な誤りなどありましたらご指摘いただければ幸いです。)
HTTPステータスコードとは
HTTPステータスコードは、HTTPにおいてWebサーバからのレスポンスの意味を表現する3桁の数字からなるコードである。
簡単に言うと、HTTPリクエストが成功したかどうかを3桁の数字で表したものです。
サトリク
こちらの記事を先に読んでおいたほうがいいかもしれません。
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にアクセスした時、エラーになってしまいますよね。しかし、それはリダイレクトすることで解決できます。
サトリク
リダイレクトについての解説は、こちら
HTTPステータス404 Not Found
404番これは、有名ですね。
現在存在しないURLにアクセスするとこのエラーになります。
サトリク
このブログの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の拡張機能にあります。
サトリク
仕事でもAPIの確認をするために使っています。
やり方は、少し難しいので、以下の記事を参考にしてみてください。
参考 Advanced rest clientでログインしてAPIを叩く方法 - Qiita取得できませんでしたへぇ〜こんなので確認できるんだね。
オコジョ
再問題
では、もう一度答えてみましょう。
永続的なリダイレクトを示すステータスコードとして、正しいものを選びなさい。
A.101
B.200
C.301
D.401
E.404
リダイレクトと言うことは、300番台。
答えは、Cの301!
オコジョ
サトリク
正解!
まとめ
- 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を送りつけてあげよう