TL;DR

クライアントがリクエストを送るときに、それまで見ていたページの URL を送る HTTP のリクエストヘッダ。

なぜ必要か

サーバは、このヘッダでページの参照元を知ることができる。MDN によると、このデータは分析、ログ、キャッシュの最適化などに使われる。

仕組み

リンクをクリックしたときは、そのリンクを含むページのアドレスが入る。別のドメインにリソースを要求したときは、そのリソースを使うページのアドレスが入る。オリジン、パス、クエリ文字列を含められるが、フラグメント(#section)や username:password は含まない。

注意点

1992 年版の HTTP/0.9 から存在するが、セキュリティのために仕様が大きく変わっている。

ヘッダ名の referer は、英語の referrer の綴り間違いだが、仕様にそのまま残っている。また、このヘッダはユーザのセキュリティやプライバシーに望ましくない影響を与えることがある。どこまでの情報を含めるかは、リクエストのリファラーポリシー(Referrer-Policy)で決まる。

関連

出典