リダイレクトとリファラの関係

  • このエントリーをはてなブックマークに追加

前提として、AというサイトからBというサイトにリンクがはられている時、そのリンクを踏んで遷移するとサイトBにはサイトAから来ましたよという「リファラ」情報が送られる。

この時、広告を掲載している場合など、AからBへの遷移数を計るためにクリックカウンタを挟むことはよくある話。つまり「リダイレクト」させるわけだ。

ところで、リダイレクトさせた時にもリファラ情報は送られるのだろうか。

実はこれはリダイレクトのさせ方による。

一般的なステータスコード301や302のリダイレクトの場合は、どのブラウザで見ても(リファラを送らない特別な仕様のもののを除き)基本的にリファラは送られる。

【ケース1】
A:元ページ (リンク⇒) B:リダイレクトURL (301 or 302リダイレクト⇒) C:リダイレクト先URL
⇒このケースではCにはBではなく、AのURLがリファラ情報として送られる。

では、1ページ挟み、metaタグのrefresh属性でリダイレクトさせた場合はどうなのだろう。

【ケース2】
A:元ページ (リンク⇒) B:リダイレクトURL (meta refreshリダイレクト⇒) C:リダイレクト先URL

このケースではブラウザによる差があることが判明した。

■Chrome(30.0)、Safari(5.1.7)
CにはBのURLがリファラ情報として送られる。
これはrefreshまでの時間を0にしても0以外にしても変わらない。

■FireFox(24.0)、IE(8.0.6)
Cには一切リファラ情報が送られない。
これはrefreshまでの時間を0にしても0以外にしても変わらない。

Bの情報が送られることはあるかもとは思っていたが、まさか送られないとは思わなかった。今後ブラウザのバージョンアップで変わるかもしれないが、勉強になった。


サブコンテンツ