redirecto_toってHTTPのリダイレクトと関係あるの?
と思いwireshark(ネットワーク・アナライザ)で実際にキャプチャーしてみた。
◇wireshark
↓インストール方法
https://ichibariki.hatenablog.com/entry/2017/12/10/124732
やったこと
videos controllerがこんな感じになっていて、new_video_pathのテンプレートから
@videoをcreateするとします。
createできたらredirect_to でvideos_path(/videos つまりindex)にリダイレクトされます。
videos_controller.rb
dew index
@videos = Video.all
end
def new
@video = Video.new
end
def create
@video = Video.new
if @video.save
redirect_to videos_path
eles
render :new
end
end
結果
↑SourceもDestinationもloopbackアドレス(127.0.0.1)でディスプレイフィルターしてます。
順番に
- リクエスト (クライアント → サーバー)
- レスポンス (クライアント ← サーバー)
- リクエスト (クライアント → サーバー)
- レスポンス (クライアント ← サーバー)
です。
2番目のパケットを見ると、302 Found
のリダイレクトパケットを受け取っているのが分かります。
302 Foundについてはwikipedia参照
リダイレクトを受け取り、クライアントは/videosへGet(videos_path)を送信しています。
【感想】
パケットレベルでHTTPリクエストとレスポンスを覗くとイメージしやすいです。