はじめに
この記事はWebの基礎をおさらいカレンダー Advent Calendar 2022の記事です。
このカレンダーでは、なんとなくわかった気になっている、Webの知識をおさらいします。
興味をもし持ってくださった方は、購読いただけると嬉しいです!
今回はHTTPステータスコードについて説明します!
HTTPステータスコードとは
Webサイトにアクセスした際に、http通信が行われます。
http通信が行われた後、サーバーからのレスポンスが返されます。
HTTPレスポンスは3つのパートで構成されています。
- HTTPステータスライン
- HTTPレスポンスヘッダ
- HTTPレスポンスボディ
このHTTPレスポンスの最初の1行目にある、HTTPステータスラインに、リクエストした結果どうなったか?
という情報が簡易的に書かれています。
ステータスラインの例: HTTP/1.1 200 OK\r\n
HTTP/1.1で200 OKが返却された。というような感じで、1行目を見ると、リクエストが成功したのか、失敗したのかなどどうなったのかを簡易的に理解することができます。
この200のような、3桁のコードの部分がHTTPステータスコードです。
つまり、簡易的なリクエスト結果を知らせるためのステータスを表すコードです。
種類
ステータス種別 | 桁 | 説明 |
---|---|---|
情報レスポンス | 100-199 | リクエストが処理されている状態。ほとんど一瞬で処理が完了するため、通常意識することはない |
成功レスポンス | 200-299 | クライアントからリクエストが正常に送られ、受付された状態 |
リダイレクトメッセージ | 300-399 | リクエストに追加処理が必要な状態。 |
クライアントエラーレスポンス | 400-499 | クライアントサイド(ユーザー側)で何か意図せぬ操作が行われた場合に発生する |
サーバーエラーレスポンス | 500-599 | サーバー側で何か問題が起きている状態。このステータスコードを見つけたら、管理者にお知らせしましょう。 |
代表的なHTTPステータスコード
全部紹介しているとキリがないので、よく使われるものに絞って紹介します。(全部見たい方は参考文献を参照してください)
- 200 OK
- 定番なステータスコード。
- リクエストが成功したことを指す。
- 301 Moved Permanently
- リダイレクトが自動的に行われる。
- リクエストしたURLが一時的なものではなく、完全に変更されたことを指す。
- 302 Found
- 一時的なリダイレクト。
- 304 Not Modified
- キャッシュで使用。レスポンスが変更されていないことを指す。
- このコードを見かけたら、キャッシュされているので、ブラウザ側で更新をかけても表示は変わらない。
- 記事などを更新したときに304が出ていないか確認しよう。
- 307 Temporary Redirect, 308 Permanent Redirect
- 302, 301と意味合い的には同じだが、HTTPメソッドが変更されない点が異なる。
- 例えば、302,301だとPOSTのリダイレクトが古いクライアントだとGETに変更されてしまう可能性がある。
- GETだけにリダイレクトを使う場合は特に意識する必要はないが、違いを理解して間違えないようにしましょう。
- 302, 301と意味合い的には同じだが、HTTPメソッドが変更されない点が異なる。
- 403 Forbidden
- コンテンツのアクセス権がなく、見られない時に使用される。
- 404 Not Found
- コンテンツが見つからない時に使用される。一番目にする機会が多いはず
- 500 Internal Server Error
- サーバー側で処理方法がわからないエラーが発生した際に使用される。
- 502 Bad Gateway
- ゲートウェイまたはプロキシ用のサーバーが無効なレスポンスを受け取った際に使用される。
- 503 Service Unavailable
- サーバー側のリクエストの準備ができていない状態を指す。
- メンテナンスや高負荷時でのダウンなどの際に使用される。
ネタステータスコード
上記が代表的なコードですが、一つ面白いステータスコードを紹介します。
418 I'm a teampot
エイプリルフールのジョークとして使用されたネタで、サーバーが「私はティーポットなので、コーヒーは入れられません。」というエラーだそうです。
- googleにもジョークページが存在しています。
小粋な方がいらっしゃいましたら、使ってみてはいかがでしょう。
終わりに
以上、httpステータスコードについてまとめてみました。
普段、何気なく見ているステータスコードの意味を知ると、より状況が理解しやすくなると思います!
ぜひ、心に留めておいてください!
Webの基礎をおさらいカレンダー Advent Calendar 2022でした。
興味をもし持ってくださった方は、購読いただけると嬉しいです!
参考文献
MDN HTTP レスポンスステータスコード
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 HTTPヘッダとは