Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

Refererヘッダ(リファラヘッダ)とは | 意味や読み方など丁寧でわかりやすい用語解説

Refererヘッダ(リファラヘッダ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

リファラヘッダ (リファラヘッダ)

英語表記

Referer (リファラー)

用語解説

Refererヘッダとは、WebブラウザがWebサーバーに対してHTTPリクエストを送信する際、そのリクエストがどのウェブページから発生したかを示す情報を含むHTTPヘッダフィールドのことである。これはユーザーがリンクをクリックしたり、フォームを送信したりして別のページへ遷移した時に、元のページのURLを送信先に伝える役割を持つ。この情報を受け取ったWebサーバーは、ユーザーがどこから来たのかを把握でき、ウェブサイトのアクセス解析やセキュリティ機能など、様々な目的で利用される。

より詳しく説明する。Refererヘッダは、HTTPリクエストのヘッダ部分に「Referer: [遷移元のURL]」という形式で付与される。例えば、https://example.com/pageA というページにあるリンクをクリックして https://target.com/pageB へ移動した場合、ブラウザは target.com へ送信するHTTPリクエストに Referer: https://example.com/pageA という情報を自動的に含める。この情報は、Webサーバーが提供するコンテンツの利用状況を把握するために極めて有用である。

主な用途としては、まずアクセス解析が挙げられる。ウェブサイトの管理者は、Refererヘッダの情報を分析することで、どの外部サイトや検索エンジン、あるいは自サイト内のどのページからユーザーが流入してきたかを詳細に把握できる。これにより、ウェブサイトのトラフィック源を特定し、マーケティング戦略の立案やコンテンツ改善に役立てることが可能になる。例えば、特定のブログ記事からの流入が多い場合は、その記事内容に関連するコンテンツをさらに充実させるといった施策が考えられる。

次に、セキュリティ機能の一部としても利用される。例えば、画像や動画などのコンテンツが、自身のウェブサイト以外から直接リンクされて表示される、いわゆる「直リンク(ホットリンキング)」を防止するためにRefererヘッダが用いられることがある。Webサーバー側で、リクエストのRefererヘッダが自サイトのドメインではない場合、コンテンツの提供を拒否したり、代替の画像を表示したりすることで、帯域幅の不正な消費を防ぐことができる。また、クロスサイトリクエストフォージェリ(CSRF)対策の一環として、リクエストが自サイトのページから送信されたものであることを確認するためにRefererヘッダをチェックすることもあるが、Refererヘッダはユーザーや中間プロキシによって改竄される可能性もあるため、これ単独でのセキュリティ対策は推奨されず、他の堅牢な認証メカニズムと組み合わせる必要がある。

しかし、Refererヘッダの利用にはプライバシーやセキュリティ上の考慮事項も存在する。Refererヘッダには遷移元のページのURLがそのまま含まれるため、もしそのURLにユーザーを特定できる情報や機密性の高い情報(例:クエリパラメータに含まれるセッションIDや個人情報)が含まれていた場合、意図しない情報漏洩につながるリスクがある。このプライバシーリスクを軽減するために、WebブラウザやWebサーバー、そしてウェブサイト運営者は、Refererヘッダの送信に関する挙動を制御する仕組みを導入している。これが「Referrer-Policy」というHTTPレスポンスヘッダである。

Referrer-Policyは、ウェブサイト運営者がどのような状況でRefererヘッダを送信するか、また送信する場合にどの程度の情報を送信するかを細かく指定できるポリシーである。例えば、no-referrerというポリシーを指定すれば、一切のRefererヘッダが送信されなくなり、プライバシー保護の観点からは最も安全である。same-originポリシーでは、同一オリジン(同じドメイン、プロトコル、ポート)へのリクエストの場合のみRefererヘッダを送信し、異なるオリジンへのリクエストでは送信しない。strict-origin-when-cross-originポリシーでは、同一オリジンへのリクエストでは完全なURLを送信し、異なるオリジンへのリクエストではオリジン(プロトコル、ドメイン、ポート)のみを送信し、パスやクエリパラメータを含まない。これにより、プライバシーと機能性のバランスを取ることができる。特に、HTTPSからHTTPへ遷移する際には、セキュリティ上の理由からブラウザがRefererヘッダを送信しない、または一部の情報のみに制限するといった挙動をすることが一般的である。

Refererヘッダは、すべてのケースで必ずしも送信されるわけではない点にも注意が必要である。ユーザーがブラウザの設定でRefererヘッダの送信を無効化している場合や、ブックマークから直接アクセスした場合、URLを直接入力した場合、またはメールクライアントなど特定のアプリケーションからリンクをクリックした場合など、いくつかの状況ではRefererヘッダが送信されない。また、JavaScriptのdocument.referrerプロパティを使ってクライアント側で遷移元情報を取得することもできるが、これはRefererヘッダと同じ情報源を参照しているため、同じ制約を受ける。したがって、ウェブアプリケーションの設計において、Refererヘッダのみに依存するのではなく、補完的な情報として利用したり、より堅牢な代替手段を検討したりすることが重要である。

関連コンテンツ