概要
CORS(コース)とは、
Webブラウザが異なるオリジン(ドメイン・プロトコル・ポートの組み合わせ)間で
リソースを共有できるようにする仕組みです。
通常、ブラウザは「セキュリティ上の制約」で異なるオリジンへのアクセスを制限します
(同一オリジンポリシー)。
この制約を緩和して安全に通信できるようにするのがCORSです。
正式名称
Cross-Origin Resource Sharing(クロス・オリジン・リソース・シェアリング)
略称
CORS(コース)
特徴
- 異なるオリジン間での通信を制御する仕組み
- HTTPレスポンスヘッダ(例:
Access-Control-Allow-Origin
)で許可を指定 - APIや外部リソースの利用時によく登場
- 不正なリクエストを防ぐため、ブラウザが自動で制御
- サーバー側で正しく設定しないと通信が失敗する
具体例
例1:API呼び出し
- 自サイト(https://example.com)から外部API(https://api.example.org)を呼び出す場合
- サーバーがレスポンスに以下を含めればアクセス可能:
Access-Control-Allow-Origin: https://example.com
例2:エラーが出るケース
- 許可設定がされていないAPIにアクセスすると、ブラウザで以下のようなエラーが出る
Access to fetch at 'https://api.example.org' from origin 'https://example.com'
関連用語
用語 | 解説 |
---|---|
同一オリジンポリシー(Same-Origin Policy) | 異なるオリジン間でのアクセスを制限する基本ルール |
プリフライトリクエスト (Preflight Request) | 実際のリクエスト前にOPTIONSメソッドで許可を確認する仕組み |
HTTPヘッダ | Access-Control-Allow-Origin /Access-Control-Allow-Methods などがCORS設定に使われる |
API | 外部サービスとの通信でCORS設定が必要になる代表例 |