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 300番台)のHTTPステータスコードの意味と、それを表すシンボルについてまとめていきたいと思います。

他のHTTP レスポンスステータスコードはこちら
情報レスポンス編
成功レスポンス編
クライアントエラーレスポンス編
サーバーエラーレスポンス編

status: :multiple_choices

HTTPステータスコード :300
いくつか候補があるから、自分で選んでね」という意味。
⇒クライアント:「このページ見せて」とリクエストを送る。
⇒サーバー:「いくつか候補(日本語版、英語版、場所、形式)があるよ」と返す時に送る。

300は明確な選好が得にくく、実務では避けられることが多い

status: :moved_permanently

HTTPステータスコード :301
ページの場所が完全に変わったから、新しいURLにアクセスしてね」という意味。
⇒クライアント:古いURLにアクセス
⇒サーバー:「このページは完全に引っ越したから、これからは新しいURLを使ってね!!」と返すときに使う。

status: :found

HTTPステータスコード :302
今だけ別の場所にあるから、そっちを見てね」という意味。
⇒クライアント:あるURLにアクセス
⇒サーバー:「URLを一時的に移動したよ!!」と伝えるときに返す。

status: :see_other

HTTPステータスコード :303
処理結果は別ページにあって、GETでアクセスして見てね」ということ。
⇒クライアント:フォームで送信(POST)
⇒サーバー:「処理完了。結果は別のURLを見に行ってね」と伝えるときに返す

status: :not_modified

HTTPステータスコード :304
データは更新されてないから、キャッシュをそのまま使ってね」という意味。
⇒クライアント:「このデータ変わった?」と確認する
⇒サーバー:「変わってないから、前のデータ使ってOK」と伝えるときに使う。

status: :temporary_redirect

HTTPステータスコード :307
一時的に場所が変わったけど、リクエストのやり方はそのままで送ってね」という意味。
⇒クライアント:POSTでリクエスト送信
⇒サーバー:「URLを一時的に移動したよ!!。またPOSTで送ってね」と案内するときに使用する。

status: :permanent_redirect

HTTPステータスコード :308
ページの場所が完全に変わったから、新しいURLにリクエストのやり方は変えずにアクセスしてね」という意味。
⇒クライアント:POSTでリクエスト送信
⇒サーバー:「URLを完全に移動したよ!!。またPOSTで送ってね」と案内するときに使用する。

参考元

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?