100% ブラウザ内完結計算 • サーバーログ完全ゼロ • 即時実行
Curious Techie開発者ツールボックス
Web SecurityW3C Recommendation / Fetch StandardVerified Terminology

CORS(Cross-Origin Resource Sharing)

直接の回答

HTTPレスポンスヘッダーを用いて、サーバーがブラウザに対して外部オリジンからのリソースアクセス許可を伝達する標準仕様。

Entity Relationships (GEO Conceptual Hierarchy)

Taxonomy Model
Relational Knowledge Graph Sequence
CORS→
SOP緩和→
Access-Control-Allow-Origin→
OPTIONS プリフライト→
認証情報共有
CORS
•>SOP緩和
•>Access-Control-Allow-Origin
•>OPTIONS プリフライト
•>認証情報共有

Technical Explanation & Operational Mechanics

CORSはブラウザの同一オリジンポリシー(SOP)を安全に緩和するためのW3C標準プロトコルです。サーバーが Access-Control-Allow-Origin などのヘッダーを返すことで、フロントエンドのJavaScriptが異なるドメインのAPIからレスポンスデータを読み取ることを許可します。非単純リクエスト(PUT、DELETE、カスタムヘッダー等)では、事前に OPTIONS プリフライトリクエストが送信されます。

Technical Example & Practical Implementation

CORSプリフライトリクエストのヘッダー交換

カスタムヘッダーや非単純メソッド実行前のブラウザ自動検証フロー

// 1. Browser sends automatic preflight check:
OPTIONS /api/v1/profile HTTP/1.1
Host: api.example.com
Origin: https://app.client.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: Authorization, Content-Type

// 2. Server grants cross-origin permission:
HTTP/1.1 204 No Content
Access-Control-Allow-Origin: https://app.client.com
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Authorization, Content-Type
Access-Control-Max-Age: 86400

// 3. Browser executes the actual POST request:
POST /api/v1/profile HTTP/1.1
Host: api.example.com
Origin: https://app.client.com
Content-Type: application/json