1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

HTTPステータスコードについての備忘録

Last updated at Posted at 2021-12-10

はじめに

今回はHTTPステータスコードについての備忘録になります。

よくインターネットに繋がらないときなどに謎の数字に出会ったことはありませんか?
ITにあまり触れたことのない人でも、一体何の数字なんだろうと疑問を感じたことはあると思います。
そこで今回は、その謎の数字、HTTPステータスコードについて私が調べた内容をまとめます。

ブラウザがページを表示する仕組み

以下の記事がとても参考になったのでこちらを参照ください。
今回はどんなコードがあるかをまとめるため、こちらの仕組みは引用だけにとどめておきます。
リクエストとレスポンスの考え方を抑えておくことが大事だと思います。

100番台~ : Informational

ステータスコード 内容
100 Continue リクエストを継続できることを示す
101 Switching Protocols サーバがリクエストに対してプロトコルの切り替えを要求していることを示す
102 Processing 処理中である場合に返される

200番台~ : Success

ステータスコード 内容
200 OK リクエストが成功し、要求に対する情報が正常に返されていることを示す
201 Created リクエストが完了し、新たに作成されたデータのURIが返されていることを示す
※PUTメソッドでリソースを作成するリクエストを行ったとき際に返却される
202 Accepted リクエストは受理されたが、まだ処理中である場合に返される
203 Non-Authoritative Information 実際の情報ではなくローカルやプロキシなどからの情報である場合を示す
※信頼できない情報
204 No Content リクエストを受理したが、返すべき情報が存在しない場合に返される
205 Reset Content リクエストを受理し、ユーザエージェントの画面をリセットする場合に返される
206 Partial Content レジュームを行ったような場合に、部分的GETリクエストを受理したときなどに返される
207 Multi-Status 複数のステータスが存在する場合に返される
208 Already Reported 既に報告されている場合に返される。バインドループを防ぐためのコード
226 IM Used IMを使用している。Delta encoding in HTTPの拡張ステータスコード

300番台~ : Redirection

ステータスコード 内容
300 Multiple Choices リクエストしたリソースが複数存在し、選択が必要な場合に選択肢と一緒に返される
301 Moved Permanently リクエストしたリソースが恒久的に移動されているときに返される
302 Found リクエストに対するレスポンスが他のURLに存在するときに返される
303 See Other リクエストに対するレスポンスが他のURIに存在するときに返される
304 Not Modified リクエストしたリソースは更新されていないことを示す。jsや画像などのキャッシュで変更がなかった場合によく使われる
305 Use Proxy プロキシを使用してリクエストを行わなければならない場合に返される
306 (Unused) 未使用である場合に返される
307 Temporary Redirect リクエストしたリソースが一時的に移動されている場合に返される
308 Permanent Redirect リクエストしたリソースは恒久的に移動されているときに返される

400番台~ : Client Error

ステータスコード 内容
400 Bad Request 定義されていないメソッドを使うなど、クライアントのリクエストに異常がある場合に返される
401 Unauthorized Basic認証やDigest認証などを行うときに使用される
402 Payment Required 支払いが必要である場合に返される。現在は未実装で、将来のために予約されている
403 Forbidden リソースにアクセスすることを拒否された場合に返される。サアクセス権がない場合など、権限設定を失敗しているときに返される
404 Not Found 未検出。リソース・ページが見つからなかった場合に返される。アクセス権がない場合などにも使用される
405 Method Not Allowed 許可されていないメソッドを使用しようとした。POSTメソッドの使用が許されていないURIにPOSTでアクセスした場合など
406 Not Acceptable Accept関連のヘッダに受理できない内容が含まれている場合に返される。Accept-Language、Accept-Charsetなどでファイル形式、言語をブラウザが許可していない場合など
407 Proxy Authentication Required プロキシの認証が必要な場合に返される
408 Request Timeout リクエストが時間以内に完了していない場合に返される
409 Conflict リクエストが現在のリソースと矛盾するので完了できない
410 Gone リソースは恒久的に移動・消滅した。どこにあるかもわからない状態。404 とは異なり、二度と復活しない場合に使われる
411 Length Required Content-Lengthヘッダがないのでサーバがアクセスを拒否した場合に返される
412 Precondition Failed 前提条件が誤りだった場合に返される
413 Request Entity Too Large リクエストエンティティがサーバの許容範囲を超えている場合に返す。サーバの制限サイズより大きいファイルをアップロードしたようなとき
414 Request-URI Too Long URIが長過ぎるのでサーバが処理を拒否した場合に返す。画像データのような大きなデータをGETメソッドで送ったような場合
415 Unsupported Media Type 指定されたメディアタイプがサーバでサポートされていない場合に返す
416 Requested Range Not Satisfiable 実リソースのサイズを超えるデータを要求した場合に返す。リソースのサイズが1024Byteしかないのに、1025Byteを取得しようとした場合など
417 Expectation Failed サーバが拡張ステータスコードを扱えない場合に返す
418 I’m a teapot HTCPCP/1.0の拡張ステータスコード。ティーポットにコーヒーを淹れるリクエストが来て、拒否された場合に返す。※ジョークコード
422 Unprocessable Entity WebDAVの拡張ステータスコード。処理できないエンティティを示す
423 Locked WebDAVの拡張ステータスコード。リクエストしたリソースがロックされている場合に返す
424 Failed Dependency WebDAVの拡張ステータスコード。依存関係でエラーになった場合に返す
426 Upgrade Required Upgrading to TLS Within HTTP/1.1の拡張ステータスコード。アップグレードが必要な場合に返す

500番台~ : 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 サーバ内でリダイレクトループに入ったときに返される
509 Bandwidth Limit Exceeded そのサーバに設定されている帯域幅(転送量)を使い切った場合に返される
510 Not Extended An HTTP Extension Frameworkで定義されている拡張ステータスコード。拡張できない場合に返される
511 Network Authentication Required ネットワークに対する認証が必要な場合に返される

まとめ

自分で調べる前は、正直なところ400番台を少しだけ見たことがあるという感じでした。想像以上にコードがたくさんありましたが、それぞれ何を示しているかが明確ですので、いざ自分が開発をするぞとなった時に、これらが頭に入っていると、エラーの解決が少しは早くなるのではないかと思いました!また今回説明が不足している部分などはアップデートする予定です(自分で調べて意味をしっかり理解できない部分もあったので)。

最後に、今回の内容をざっくり頭に落とすために、以下の表でまとめました。

番号 内容
100番台 処理中を示す
200番台 成功を示す
300番台 情報の転送を示す
400番台 クライアントサイドのエラーを示す
500番台 サーバーサイドのエラーを示す

参考

HTTPステータスコード一覧

208とはどのようなコードか

418とはどのようなコードか

WebDAVとは?

An HTTP Extension Framework とは?

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?