blob: 666ec6ef24c3f55e0f373bc7f1a44cbe4c67d83b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
---
title: Preflight request (プリフライトリクエスト)
slug: Glossary/Preflight_request
tags:
- CORS
- Glossary
- HTTP
- Preflight
- request
translation_of: Glossary/Preflight_request
---
<p>CORS のプリフライトリクエストは {{Glossary("CORS")}} のリクエストの一つであり、サーバーが CORS プロトコルを理解していて準備がされていることを、特定のメソッドとヘッダーを使用してチェックします。</p>
<p>これは {{HTTPMethod("OPTIONS")}} リクエストであり、 {{HTTPHeader("Access-Control-Request-Method")}},{{HTTPHeader("Access-Control-Request-Headers")}}, {{HTTPHeader("Origin")}} の3つの HTTP リクエストヘッダー使用します。</p>
<p>プリフライトリクエストはブラウザーが自動的に発行するものであり、通常は、フロントエンドの開発者が自分でそのようなリクエストを作成する必要はありません。これはリクエストが<a href="/ja/docs/Web/HTTP/CORS#Preflighted_requests">"to be preflighted"</a>と修飾されている場合に現れ、<a href="/ja/docs/Web/HTTP/CORS#Simple_requests">単純リクエスト</a>の場合は省略されます。</p>
<p>例えば、クライアントはプリフライトリクエストを使用して、 {{HTTPMethod("DELETE")}} リクエストを送信する前に、 <code>DELETE</code> リクエストを許可するかどうかをサーバーに尋ねるかもしれません。</p>
<pre class="notranslate">OPTIONS /resource/foo
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: origin, x-requested-with
Origin: https://foo.bar.org</pre>
<p>サーバーが許可している場合は、プリフライトリクエストへのレスポンスで、 {{HTTPHeader("Access-Control-Allow-Methods")}} レスポンスヘッダーに <code>DELETE</code> を含めます。</p>
<pre class="notranslate">HTTP/1.1 204 No Content
Connection: keep-alive
Access-Control-Allow-Origin: https://foo.bar.org
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
</pre>
<p>プリフライトレスポンスは、上記の例のように {{HTTPHeader("Access-Control-Max-Age")}} ヘッダを使用して同じ URL で作成されたリクエストに対して、オプションでキャッシュすることができます。</p>
<h2 id="See_also" name="See_also">関連情報</h2>
<ul>
<li>{{Glossary("CORS")}}</li>
<li>{{HTTPMethod("OPTIONS")}}</li>
</ul>
|