先に読むと理解しやすい記事:HTTP・HTTPS
URLは通信方法と取得する対象を表す
URLは、ページなどの場所を指定する文字列です。たとえば https://shop.example:8443/orders/42?view=short#total は、接続方法、ホスト、ポート、パス、クエリー、フラグメントに分けて読めます。
ブラウザはこの指定から接続先と要求する対象を決めます。同じサーバー内の別ページか、異なる接続先かを判断するときは、URL全体の見た目より各部品を確かめることが大切です。
参照:出典 s1
スキーム・ホスト・ポートとパスを区別する
スキームの https は通信方法を示します。ホストの shop.example は接続先を識別する名前で、ドメイン名の形をしています。ポートの8443は、そのホストで通信を受け付ける番号です。省略時の既定値はHTTPSが443、HTTPが80です。
パス /orders/42 はその接続先での対象を指定し、クエリー view=short は追加の指定に使われます。#total はフラグメントで、ページ内の位置などを示します。通常のHTTPリクエストではフラグメントはサーバーへ送られず、ブラウザ側で扱います。
説明用の通信例・設定例・擬似コード
https://shop.example:8443/orders/42?view=short#total
スキーム: https
ホスト: shop.example
ポート: 8443
パス: /orders/42
クエリー: view=short
フラグメント: total参照:出典 s1
オリジンはスキーム・ホスト・ポートの組
HTTPやHTTPSのURLでは、スキーム、ホスト、実際に使うポートがすべて一致すると同一オリジンです。パスやクエリーが違ってもオリジンは変わりません。https://shop.example/a と https://shop.example/b は同一オリジンです。
https://shop.example と https://api.shop.example はホストが違うため別オリジンです。http://shop.example はスキームが違い、https://shop.example:8443 はポートが違うため、どちらも https://shop.example とは別オリジンになります。
同じサイトでも別オリジンになる
CookieのSameSiteで使うサイトという区切りは、オリジンと異なります。通常のドメイン名なら、スキームと登録可能なドメインを基準にします。登録可能なドメインは、co.jpのような公開接尾辞も考慮するため、末尾の二つを切り出せばよいとは限りません。
たとえば https://app.example.com と https://api.example.com は、同じスキームと登録可能なドメイン example.com を共有するため同じサイトですが、ホストが異なるので別オリジンです。CORSの許可とSameSiteのCookie送信条件を同じ判定だと考えると、設定を誤ります。
文字列の見た目で接続先を許可しない
説明用の例として、転送先の許可を「URLに trusted.example を含むか」だけで判定する実装を考えます。攻撃者が https://trusted.example.attacker.example/ を指定すると、文字列は一致しますが実際のホストは攻撃者側です。サーバーがそのURLへ秘密情報を送れば、攻撃者が受信できます。
URLを解析する標準の機能でホストやオリジンを取り出し、許可する値と比較します。https://trusted.example@attacker.example/ の trusted.example は利用者情報の部分で、ホストは attacker.example です。名前が左側に見えるだけで信用しないようにします。
同一オリジンかを三つの値で答える
確認問題:https://app.example.com/a と https://app.example.com:443/b は同一オリジンでしょうか。答えは同一です。省略されたHTTPSのポートも443なので、スキーム・ホスト・ポートが一致します。
一方、https://app.example.com と https://api.example.com は別オリジンです。同じ会社のサービスか、同じIPアドレスへ接続するかは、オリジンの一致条件ではありません。
参照:出典 s2
出典・確認範囲
- [s1] URI referenceMDN / 確認日 2026-11-03
- [s2] Same-origin policyMDN / 確認日 2026-11-03
- [s3] Using HTTP cookiesMDN / 確認日 2026-11-03
- [s4] URL StandardWHATWG / 確認日 2026-11-03
通信例・設定例・被害の例は、仕組みを理解するための仮定です。特定の製品で発生した事件を示すものではありません。ブラウザやサービス固有の設定は、利用する環境の公式資料でも確認してください。