0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Rails] statusオプション 成功レスポンス編

0
Posted at

はじめに

Railsを勉強している中で status オプションが出てきたので、整理してまとめてみます。
:statusオプションは一言でいうと、
HTTPレスポンスのステータスコードを指定するためのオプションです。
Railsではコントローラでレスポンスを返すときに使って、
「このリクエストは成功なのか?エラーなのか?リダイレクトなのか?」みたいな意味をクライアントに伝える役割があります。
本記事では、成功レスポンス(HTTP 200番台)のHTTPステータスコードの意味と、それを表すシンボルについてまとめていきたいと思います。

他のHTTP レスポンスステータスコードはこちら
情報レスポンス編
リダイレクトメッセージ編
クライアントエラーレスポンス編
サーバーエラーレスポンス編

status: :ok

HTTPステータスコード :200
問題なく処理できリクエストが成功した」という意味。
リクエストごとに成功が異なる

・GET: リソースが読み込まれ、メッセージ本文で転送された
・HEAD: メッセージ本文がなく、表現ヘッダーがレスポンスに含まれている
・PUT または POST: 操作の結果を表すリソースがメッセージ本文で送信される
・TRACE: メッセージ本文に、サーバーが受け取ったリクエストメッセージが含まれている

status: :created

HTTPステータスコード :201
新しいリソースの作成が成功した」という合図。
⇒クライアント:「新しいユーザーを作って!」と送る(POST、PUT)
⇒サーバーが正常に処理して「作成できたよ!」と返す

status: :accepted

HTTPステータスコード :202
受付は完了。でも処理はまだ終わっていない状態」という意味。
⇒クライアントがリクエストを送る
⇒サーバー:「受け付けたけど、まだ終わってないよ」

時間が掛かる処理に使う
・画像や動画の変換
・大量データの処理
・メール送信(バックグラウンド処理)

status: :non_authoritative_information

HTTPステータスコード :203
リクエストは正常に処理された。しかし、返された情報がオリジナルのサーバーからではなく、変換プロキシによって変更・加工されたものである」という意味。
⇒クライアント:「データちょうだい」とリクエスト
⇒サーバー:「データはあるけど、これはコピーやキャッシュの情報だよ」と知らせる

status: :no_content

HTTPステータスコード :204
成功はしているけど、画面に表示するデータは何もない状態」という意味。
⇒クライアント:リクエストを出す
⇒サーバー:「成功したよ。でも返す内容はないよ」と返す。

status: :reset_content

HTTPステータスコード :205
成功したから、画面の入力内容を初期状態に戻してね」という意味。
⇒クライアント:フォームに入力して送信
⇒サーバー:「処理は成功したから、入力フォームなどをリセットしてね」と通知する。

status: :partial_content

HTTPステータスコード :206
リクエストされたデータの一部だけ返す」という意味。

使用する場面
・ユーザーが動画の途中から再生を開始したい場合
・ダウンロードが中断されたとき、途中から再開する場合

status: :multi_status

HTTPステータスコード :207
1つのリクエストに対して、結果が複数ある」という意味。
⇒クライアント:「この複数のA、B、Cファイルをまとめて処理して!」とリクエスト
⇒サーバー:Aファイル → 成功
      Bファイル → 失敗
      Cファイル → 成功
それぞれの結果をまとめて返す。

status: :already_reported

HTTPステータスコード :208
同じ情報を何度も返さないように、省略しているよ」ということ。

使用する場面
・同じデータが複数の場所に紐づいているとき
・一覧取得で重複が発生しそうなとき
・WebDAV(ファイル管理系の仕組み)で使われる

status: :im_used

HTTPステータスコード :226
前のデータとの差分(変わった部分)だけ返す」という意味。
⇒クライアント(以前のデータを持っている):「変更された部分だけ教えて!」とリクエスト
⇒サーバー:変更したところだけを返す

使用する場面
・データの更新が一部だけのとき
・通信量を減らしたいとき

参考元

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?