0
0

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

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

status: :internal_server_error

HTTPステータスコード :500
サーバーの中で何か問題が起きたよ」という意味。
⇒クライアント:リクエストを送る
⇒サーバー:「内容がまちがって、処理できない」というときに送る。

status: :internal_server_error

HTTPステータスコード :501
その機能(やり方)はサーバーが対応してないよ」という意味。
⇒クライアント:特定のリクエスト(例:PUTやPATCHなど)を送る
⇒サーバー:「その機能はまだ作ってない・その方法は対応していない」というときに送る。

status: :bad_gateway

HTTPステータスコード :502
サーバー同士のやりとりでエラーが起きたよ」という意味。
⇒クライアント:リクエストをサーバーAに送る
⇒サーバーA:サーバーBにお願いする
⇒サーバーB:変な返事をする or 返事しない
⇒サーバーA:「正しいレスポンスがもらえなかった」というときに送る

status: :service_unavailable

HTTPステータスコード :503
今はサーバーが使えない状態だよ」という意味。
⇒クライアント:リクエストを送る
⇒サーバー:「今は対応できない(メンテ中・混雑中)」と伝えるときに送る。

status: :gateway_timeout

HTTPステータスコード :504
裏のサーバーの返事が遅すぎて、待てなかったよ」という意味。
⇒クライアント:リクエストを送る
⇒サーバーA:サーバーBにお願いする
⇒サーバーB:返事が遅い or 来ない
⇒サーバーA:「待ちきれないのでタイムアウト」というときに送る

status: :http_version_not_supported

HTTPステータスコード :505
そのHTTPのバージョンには対応してないよ」という意味。
⇒クライアント:リクエストを送る(古いHTTPバージョン)
⇒サーバー:「そのバージョンは使えない」と伝えるときに送る。

status: :variant_also_negotiates

HTTPステータスコード :506
サーバーの設定ミスで、うまく処理できないよ」という意味。
⇒クライアント:リクエストを送る
⇒サーバー:「サーバーの設定ミスでレスポンスを決められない」と伝えるとき送る。

status: :insufficient_storage

HTTPステータスコード :507
サーバーの保存容量が不足している」という意味。
⇒クライアント:データを保存しようとする
⇒サーバー:「サーバーの保存容量が不足している」と伝えるときに送る。

status: :loop_detected

HTTPステータスコード :508
無限ループが発生した」という意味。
⇒クライアント:リクエストを送る
⇒サーバー:同じ処理を何度も繰り返してしまうときに送る。

status: :not_extended

HTTPステータスコード :510
リクエストに追加情報が必要」という意味。
⇒クライアント:リクエストを送る
⇒サーバー:「その内容だけじゃ処理できないから、必要な情報を追加して」と伝えるときに送る。

status: :network_authentication_required

HTTPステータスコード :511
ネットワークを使うには、先にログインしてね」という意味
⇒クライアント:インターネットにアクセスしようとする
⇒ネットワーク:「このネットワークは認証が必要」と伝えるときに送る。

参考元

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?