「プリフライトリクエスト」とは、ウェブブラウザが特定の条件下で行う、本来のリクエストを送信する前に行われる安全性の確認のためのリクエストのことです。主に、クロスオリジンリクエスト(異なるオリジン間でのリクエスト)の際に、ブラウザが自動的に行います。このプリフライトリクエストは、サーバーに対して本来のリクエストを安全に行っても良いかどうかを確認するために使用されます。
オリジンとは?
オリジンとは、ウェブ上のリソースを識別するためのスキーム(プロトコル)、ホスト(ドメイン名)、ポート番号の組み合わせを指します。たとえば、https://example.com
と https://example.com:443
は同じオリジンですが、https://example.com
と http://example.com
(スキームが異なる)、https://example.com
と https://sub.example.com
(ホストが異なる)、https://example.com:80
と https://example.com:443
(ポート番号が異なる)は異なるオリジンとみなされます。
プリフライトリクエストの動作
プリフライトリクエストは、HTTPのOPTIONSメソッドを使用して行われます。このリクエストには、本来のリクエストで使用されるHTTPメソッド(例: POST、GET)や、カスタムヘッダーなどの情報が含まれます。サーバーはこのプリフライトリクエストに対して、指定されたHTTPメソッドやヘッダーが許可されているかどうか、そしてどのオリジンからのリクエストを受け入れるかを示すレスポンスを返します。
プリフライトリクエストが必要になる条件
プリフライトリクエストは、以下のような条件を満たすクロスオリジンリクエストに対して行われます。
- HTTPメソッドが
GET
,HEAD
,POST
以外の場合 POST
メソッドを使用していても、Content-Type
ヘッダーがapplication/x-www-form-urlencoded
,multipart/form-data
,text/plain
以外の値を持つ場合- カスタムヘッダーを使用する場合
なぜプリフライトリクエストが必要なのか?
プリフライトリクエストは、クロスオリジンリクエストがサーバーにとって安全であることを確認するために必要です。これにより、サーバー側で未承認のオリジンからのリクエストを拒否することができ、悪意のあるサイトによるデータの不正取得やサービスの乱用を防ぐことができます。安全なウェブ通信を保つための一つの仕組みとして、プリフライトリクエストは非常に重要な役割を果たします。
WEBプログム、WEBデザインなどの制作については、以下を御覧ください。
WEBプログム、WEBデザインなどの制作