<#webadvjs#>

ピンボールアクエリオン

プリフライトリクエストpreflight request

プリフライトリクエストとは、WebサーバCORS要求を受け付けるかどうかを実際に要求を送信する前に確かめること。クライアントからOPTIONSメソッドHTTPリクエストを送信する。

 

CORS(Cross-Origin Resource Sharing)はWebページ上のスクリプトからページが送信されたサーバとは異なるサーバへHTTP通信を行う技法で、HTTP通信の原則である同一生成元ポリシー(SOP:Same-Origin Policy)をサーバが明示的に緩和することにより実現する。

プリフライトリクエストはWebブラウザなどのクライアントからCORS通信を開始する前に、ページの送り元(オリジン)ではない側のWebサーバに通信が可能かを確かめるHTTPリクエストメッセージである。クライアントが自動的に生成・発信するもので、HTTPメソッドが「OPTIONS」に設定されている。

クライアントはHTTPリクエストヘッダ中で、ページのオリジンを「Origin:」に、受付可能か問い合わせたいHTTPメソッドを「Access-Control-Request-Method:」に、使用可能か問い合わせたいヘッダ項目を「Access-Control-Request-Headers:」に記載してプリフライトリクエストを送信する。

サーバはHTTPレスポンスヘッダで「Access-Control-Allow-Origin:」に当該オリジンが許可されているかどうかを、「Access-Control-Allow-Methods:」に許可されているメソッドを、「Access-Control-Max-Age:」で結果をキャッシュする場合の有効期限を指定して返信する。許可を得られたらクライアントは実際にCORSリクエストを送信する。

他の辞典による解説 (外部サイト)