LoginSignup
0
2

More than 3 years have passed since last update.

Web API入門#7 〜ステータスコードの意味と活用〜

Last updated at Posted at 2021-01-16

はじめに

タイトルについて記事にしました。
この記事で得る内容は以下の通りです。

・ ステータスコードの意味と活用方法について

■ Web API入門についての過去記事
Web API入門#1 〜APIとWeb API、Webの概要〜
Web API入門#2 〜REST、アーキテクチャについて〜
Web API入門#3 〜URIの基礎知識〜
Web API入門#4 〜クールなURIの設計方法について〜
Web API入門#5 〜HTTPの基礎〜
Web API入門#6 〜CRUDとHTTPメソッド〜

ステータスコード

HTTP通信には、リクエストとレスポンスが存在します。レスポンスを受け取った際に、どんな応答が返ってきているのか簡潔に分かりやすくしたものが3桁のステータスコードです。
ステータスコードの処理結果に応じて条件分岐をさせることができますし、仮に処理が失敗してもエラー処理を行う...といったプログラムを定義することができます。

ステータスコードの大分類

ステータスコードは、基本的に3桁で1xx,2xx...のように処理結果に応じて先頭の数字が変化します。
従って、先頭の数字でどのようなレスポンスが返ってきているのかを把握することができます。

ステータスコード 意味 詳細
1xx 処理中 処理が継続中
クライアントがそのままリクエストを継続か再送信するか判定
2xx 成功 リクエストの成功
3xx リダイレクト 他のリソースへのリダイレクト
Locationヘッダーを見て新しいリソースへ接続
4xx クライアントエラー クライアントのリクエストが原因でエラーが発生
5xx サーバーエラー サーバー側で何らかのエラーが発生

例えば、444のような不吉(?)で未知のステータスコードが表示されていても、先頭のコードを見れば
クライアント側で起きているエラーと大枠で判別することができます。

よく見かけるステータスコード(OK)

よく見かけるステータスコードの成功した際に表示される場合について表にしました。

ステータスコード テキストフレーズ 意味・特徴
200 OK GET:取得したリソースがメッセージ本文で送信される
HEAD:ヘッダー情報がメッセージ本文で送信される
PUT or POST:操作の結果がメッセージ本文で送信される
201 Created 新たなリソースが作成された
PUTまたはPOSTのレスポンス
204 No Content リソースのレスポンスとして送信するコンテンツはないが
リクエストは成功
301 Moved Permantly リソースの恒久的な移動

301については、過去記事のWeb API入門#4 〜クールなURIの設計方法について〜でご紹介しました
301リダイレクトの際に表示されるもので、リソースが古いURIから新しいURIに移動されたので、そちらに移動して下さいという意味です。

よく見かけるステータスコード(エラー)

よく見かけるステータスコードのエラー時に表示される場合について表にしました。

ステータスコード テキストフレーズ 意味・特徴
400 Bad Request リクエストの構文やパラメータが間違っている
403 Forbidden コンテンツへのアクセス権がない(認証されていない)
404 Not Found リソースが存在しない・URIを解釈できなかったなど
500 Internal Server Error サーバー側で処理できないエラーが発生した
502 Bad Gateway ゲートウェイとなるサーバーが正常に動作しなかった
503 Service Unavailable サーバーがメンテナンスや過負荷などでダウンしている

403は、ログインの認証が必要なページに直接アクセスしたり、認証をしないと取得できないリソースにGETメソッドを実行したりすると返ってきます。

他にもステータスコードはたくさんありますので、興味がある方はHTTP レスポンスステータスコードというサイトを覗いて見て下さい。

次の記事はこちら

Web API入門#8 〜HTTPヘッダー・キャッシュ〜

0
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
0
2