はじめに
Railsを勉強している中で status オプションが出てきたので、整理してまとめてみます。
:statusオプションは一言でいうと、
HTTPレスポンスのステータスコードを指定するためのオプションです。
Railsではコントローラでレスポンスを返すときに使って、
「このリクエストは成功なのか?エラーなのか?リダイレクトなのか?」みたいな意味をクライアントに伝える役割があります。
本記事では、情報レスポンス(HTTP 100番台)のHTTPステータスコードの意味と、それを表すシンボルについてまとめていきたいと思います。
他のHTTP レスポンスステータスコードはこちら
・成功レスポンス編
・リダイレクトメッセージ編
・クライアントエラーレスポンス編
・サーバーエラーレスポンス編
status: :continue
HTTPステータスコード :100
「ここまでの内容はOKだから、そのまま続けて送っていいよ」という合図。
⇒クライアントが「これから大きいデータ送るけど大丈夫?」と最初の一部を送る
⇒サーバー:「問題ないよ、続きを送ってOK!」という意味で返す
status: :switching_protocols
HTTPステータスコード :101
「これから通信のやり方を別の方式に変更するよ」という合図。
⇒クライアントが「このあと別の通信方法(プロトコル)に変えていい?」と依頼する
⇒サーバ:「その依頼が成功した!」ことを表す
status: :processing
HTTPステータスコード :102
「リクエストは届いていて、作業中。でもまだ結果は出てないよ」という合図。
=>クライアントがリクエストを送る
=>サーバー:「受け取った。いま処理中!」と途中で知らせる
status: :early_hints
HTTPステータスコード :103
「本体のレスポンスの前に、この後必要になるであろうリソースをあらかじめブラウザに教える」というステータスコード。
本レスポンス(200 OKなど)を準備する前に、
・CSS
・JavaScript
・フォント
のリンク情報を先に読み込ませる
参考元