GoogleのHTTPS版でRefererがoriginだけになりそう (meta referrer="origin")
Google検索のHTTPS版で、4月から検索結果から飛んだ時に送信されるRefererが変わることがあるらしい。
どうなるかというと、ChromeなんかではSSLなページに飛んだ時にoriginのみが送られて、クエリとかを含まなくなる。
Starting in April, for browsers with the appropriate support, we will be using the "referrer" meta tag to automatically simplify the referring URL that is sent by the browser when visiting a page linked from an organic search result. This results in a faster time to result and more streamlined experience for the user.
What does this mean for sites that receive clicks from Google search results? You may start to see "origin" referrers—Google’s homepages (see the meta referrer specification for further detail)—as a source of organic SSL search traffic. This change will only affect the subset of SSL search referrers which already didn’t include the query terms. Non-HTTPS referrals will continue to behave as they do today. Again, the primary motivation for this change is to remove an unneeded redirect so that signed-in users reach their destination faster.
HTTPS→HTTPに飛ぶときはもともと空文字列になるから、あまり大きな影響はないはず。HTTPS→HTTPSでクエリがなくなってしまうと困るようなページって、どれくらいあるんだろう。
あと、これをする理由がページにアクセスする時間を短縮するというのだからちょっと面白い。
<meta name="referrer" ...>
どうやって実現するかというと、<meta name="referrer">
が使われる。
Googleの検索結果一覧に入るのは多分こんなコード。
<meta name="referrer" content="origin">
meta referrerの値として定義されているのは4つ。
never
- 値を空文字列にする
default
- TLSなページからそうでないページに飛ぶ時に、値を空文字列にする
origin
- 値をoriginのASCII serializationにする
always
- 値を変更しない(SSLとかでも送っちゃう)
always凶悪だ…。
これは去年11月にWebKitに実装されて、Chrome 17に追加されている。それ以外は動きがたぶんないので、適用対象は当面Chromeのみになるはず。Safari 5.2が出たら、それに続くのかも。
仕様としては、さっきのWHATWGのWikiに書いたものが仕様というかドキュメントになっている。rel-noreferrerとの兼ね合いとか、いくつかTODOがのこってるけど、そこら辺はWebKitのコードを見たら分かったりするんだろうか。 とまあこんなふんわり状態なので、Maciejがこないだ「どうすんの?」ってメールを送っている。提案したAdam Barthからは他の実装を待ってる感じという返答があるので、しばらくふんわりしたままなのかなと。
Mozillaの該当バグも立っていて、そこで議論が進められている。
CSP 1.1に追加するとか、Facebookの人が'origin'
を使おうと考えてるってコメントしてたり面白い。
パッチもないし、CSPに追加するならそっちを待つのかな。CSPだとHTTPヘッダからも使えるし、いいよね。