ステータスコードをまとめてみた
ステータスコードの分類と意味
ステータスコードは3桁の数字で、先頭の数字によって5つに分類できる
分類と意味
分類 | 意味 | |
---|---|---|
1xx | 処理中 | クライアントはそのままリクエストを継続するか、サーバの指示に従ってプロトコルをアップデートして再送信する。 |
2xx | 成功 | リクエストが成功したことを示す。 |
3xx | リダイレクト | クライアントはこのステータスコードを受け取った時、レスポンスメッセージのLocationヘッダを見て新しいリソースへ接続する。 |
4xx | クライアントエラー | 原因はクライアントのリクエストにあり、エラーを解消しない限り正常な結果は得られないので、同じリクエストをそのまま再送信できない。 |
5xx | サーバエラー | 原因はサーバ側にあり、同一のリクエストを再送信して正常な結果が得られる可能性がある。 |
先頭の文字で分類する理由
クライアントとサーバの約束事を最小限に抑えて、クライアントとサーバの結びつきをなるべく緩やかにする、すなわち疎結合にするための工夫。
一般的にシステムが疎結合になることで、以下のようなメリットがある。
・コンポーネント間の独立性が高まる
・コンポーネントの置き換えや拡張が容易になる
またクライアントにとって未知のステータスコードが来ても、先頭の文字の約束事が守られていれば、クライアントは最低限の処理ができる。
よく使われるステータスコード9選
200 OK
リクエストが成功したことを示す。
201 Created
リソースの作成成功を示す。POSTの場合、新しく作成したリソースのURIがレスポンスのLocationヘッダに絶対URIとして入る。
301 Moved Permanently
リクエストで指定したリソースが新しいURIに移動したことを示す。新しいURIはレスポンスのLocationヘッダに絶対URIとして入る。
(別のURIにクライアントが自動的に再接続する処理を「リダイレクト」と呼ぶ。)
303 See Other
リクエストに対する処理結果が別のURIで取得できることを示す。典型的にはブラウザからPOSTでリソースを操作した結果をGETで取得するときに使う。
400 Bad Request
リクエストの構文やパラメータに間違いがあることを示す。
401 Unauthorized
適切な認証情報を与えずにリクエストを行ったことを示す。レスポンスのWWW-Authenticateヘッダで、クライアントに対して認証方式を伝える。
404 Not Found
指定したリソースが見つからないことを示す。レスポンスボディにその理由が入る。
500 Internal Sever Error
サーバ側に何らかの異常が生じていて、正しいレスポンスが返せないことを示す。レスポンスボディにその異常の理由が入る。500は他に適切なサーバエラーを示すステータスコードがない場合にも用いる。
503 Service Unavailable
サーバがメンテナンスなどで一時的にアクセス出来ないことを示す。レスポンスのRetry-Afterヘッダでサービス再開時期がおよそ何秒後であるかを通知することもできる。
まとめ
意味 | |
---|---|
200 | リクエストが成功したことを示す。 |
201 | リソースの作成成功を示す。POSTの場合、新しく作成したリソースのURIがレスポンスのLocationヘッダに絶対URIとして入る。 |
301 | リクエストで指定したリソースが新しいURIに移動したことを示す。新しいURIはレスポンスのLocationヘッダに絶対URIとして入る。 |
303 | リクエストに対する処理結果が別のURIで取得できることを示す。 |
400 | リクエストの構文やパラメータに間違いがあることを示す。 |
401 | 適切な認証情報を与えずにリクエストを行ったことを示す。レスポンスのWWW-Authenticateヘッダで、クライアントに対して認証方式を伝える。 |
404 | 指定したリソースが見つからないことを示す。レスポンスボディにその理由が入る。 |
500 | サーバ側に何らかの異常が生じていて、正しいレスポンスが返せないことを示す。レスポンスボディにその異常の理由が入る。500は他に適切なサーバエラーを示すステータスコードがない場合にも用いる。 |
503 | サーバがメンテナンスなどで一時的にアクセス出来ないことを示す。レスポンスのRetry-Afterヘッダでサービス再開時期がおよそ何秒後であるかを通知することもできる。 |
参考文献
技術評論者「Webを支える技術」