LoginSignup
42
26

More than 5 years have passed since last update.

Ruby on Rails request.refererとrequest.referrer

Posted at

Rails初心者です。Railsの中で遷移元URLを取得する方法を調べていて、request.refererを呼び出すべし、これでHTTPヘッダの中にあるHTTPリファラを参照出来る。という情報を見つけました。
早速試してみようとしたのですが、そこで気づきました。

スクリーンショット 2014-08-19 10.00.46.png

refererだけでなく、request.referrerというのがあるのです。
滅茶苦茶紛らわしいじゃねーか! 何が違うんだ、何が!

で、request.rbの中を覗いてみると、

スクリーンショット 2014-08-19 10.09.34.png

alias=別名でした。つまり全く同じものを指しています。何も違わないわけですね・・・
じゃあ、何のためにこんなもの存在するんだ、スペルミスする人のために親切心で気を利かせてくれているのか? また疑問なので調べてみたところ、

httpのヘッダ項目を指すときはreferer、英単語として正しいのはreferrer、

が正解なんですって。何でも元々HTTPの仕様を策定していたときに、その中のキーパーソン的な人がミススペルをしたのがそのまま通ってしまい、refererが定着してしまったそうです。
つまり、RFC2616を正とするかMerriam-Websterを正にするかによって答えは変わってくるということでしょうか。その辺の判断は個々のプログラマーに任せますというのは、なかなかRails寛大で良い感じがします。

42
26
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
42
26