Preflight File Request
この操作はPreflight File Request
、要求を送信する前に、Azure Filesのクロスオリジン リソース共有 (CORS) 規則に対してクエリを実行します。
Web ブラウザーまたは別のユーザー エージェントは、エージェントが作成する要求の配信元ドメイン、メソッド、ヘッダーを含むプレフライト要求を送信します。 Azure Filesに対して CORS が有効になっている場合、Azure Filesは、アカウント所有者が Set File Service Properties を使用して構成した CORS ルールに対してプレフライト要求を評価します。 Azure Files要求を受け入れるか拒否します。
CORS とプレフライト要求の詳細については、Azure Storage の CORS 仕様 と CORS サポートに関するページを参照してください。
プロトコルの可用性
有効なファイル共有プロトコル | 利用可能 |
---|---|
SMB | |
NFS |
Request
次のように指定 Preflight File Request
できます。
<account-name>
をストレージ アカウントの名前に置き換えます。 を、要求のターゲットとなる共有、ディレクトリ、またはファイル リソースに置き換えます <file-resource>
。
HTTP 動詞 | 要求 URI | HTTP バージョン |
---|---|---|
OPTIONS |
http://<account-name>.file.core.windows.net/<file-resource> http://<account-name>.file.core.windows.net/<file-resource>?restype=share http://<account-name>.file.core.windows.net/<file-resource>?restype=directory |
HTTP/1.1 |
URI のパスとクエリ部分からホスト名を区切るために、URI には常にスラッシュ (/) を含める必要があります。 この操作の場合、URI のパス部分は空にすることも、任意のAzure Files リソースを指すことができます。 Azure Files リソースが共有またはディレクトリの場合は、restype
クエリ パラメーターが必要です。
プリフライト要求が行われた時点で、リソースが存在する場合と存在しない場合があります。 プレフライト要求はサービス の CORS 規則に対してサービス レベルで評価されるため、リソース名の有無は操作の成功または失敗には影響しません。
URI パラメーター
[なし] :
要求ヘッダー
次の表では、必須および省略可能な要求ヘッダーについて説明します。
要求ヘッダー | 説明 |
---|---|
Origin |
必須。 要求の発行元を指定します。 プレフライト要求の成功または失敗を決定するために、送信元はサービスの CORS ルールと照合されます。 |
Access-Control-Request-Method |
必須。 要求のメソッド (または HTTP 動詞) を指定します。 プレフライト要求の成功または失敗を決定するために、メソッドはサービスの CORS ルールと照合されます。 |
Access-Control-Request-Headers |
省略可能。 送信する要求ヘッダーを指定します。 存在しない場合、サービスは要求にヘッダーが含まれていないと見なします。 |
x-ms-allow-trailing-dot: { <Boolean> } |
省略可能。 バージョン 2022-11-02 以降。 ブール値は、要求 URL に存在する末尾のドットをトリミングするかどうかを指定します。 詳細については、「共有、 ディレクトリ、ファイル、およびメタデータの名前付けと参照」を参照してください。 |
要求本文
[なし] :
Response
応答には、HTTP 状態コードおよび一連の応答ヘッダーが含まれています。
status code
操作に成功すると、状態コード 200 (OK) が返されます。
応答ヘッダー
この操作の応答には、次のヘッダーが含まれています。 応答には、追加の標準 HTTP ヘッダーも含まれる場合があります。 すべての標準ヘッダーは 、HTTP/1.1 プロトコル仕様に準拠しています。
プレフライト要求ヘッダーの詳細については、 CORS の仕様を参照してください。
応答ヘッダー | 説明 |
---|---|
Access-Control-Allow-Origin |
プレフライト要求が成功した場合に要求の配信元ヘッダーと一致する、許可される配信元を示します。 |
Access-Control-Allow-Methods |
プレフライト要求が成功した場合、このヘッダーは要求ヘッダー に指定された値または値に設定されます Access-Control-Request-Method 。 |
Access-Control-Allow-Headers |
プレフライト要求が成功した場合、このヘッダーは要求ヘッダー に指定された値または値に設定されます Access-Control-Request-Headers 。 |
Access-Control-Max-Age |
ユーザー エージェントが今後の要求のプレフライト要求をキャッシュできる時間の長さを指定します。 |
Access-Control-Allow-Credentials |
資格情報を使用して要求を行うことができるかどうかを示します。 このヘッダーは常に true に設定されます。 |
応答本文
[なし] :
承認
操作は Preflight File Request
常に匿名で実行されます。 承認は必要ありません。資格情報が指定されている場合は無視されます。
Note
Azure Storage 分析を有効にし、メトリックをログに記録している場合、操作の Preflight File Request
呼び出しは として AnonymousSuccess
ログに記録されます。 このため、Azure portalでメトリックを表示すると、 のログが表示AnonymousSuccess
されますPreflight File Request
。 このメトリックは、プライベート データが侵害されたことを示すのではなく Preflight File Request
、状態コード 200 (OK) で操作が成功したことを示しています。
要求と応答の例
次の例では、配信元 の プリフライト要求 を送信します www.contoso.com
。 要求メソッドは にPUT
設定され、要求ヘッダーは と accept
にcontent-type
設定されます。
OPTIONS http://myaccount.file.core.windows.net/myshare/myfile
HTTP/1.1
Accept: */*
Origin: www.contoso.com
Access-Control-Request-Method: PUT
Access-Control-Request-Headers: content-type, accept
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Content-Length: 0
応答は、サービスに対して CORS が有効であり、CORS 規則がプレフライト要求と一致することを示します。
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 60
Access-Control-Allow-Methods: PUT
Access-Control-Allow-Headers: accept,content-type
解説
サービスに対して CORS が有効で、CORS ルールがプレフライト要求と一致する場合、サービスは状態コード 200 (OK) でプレフライト要求に応答します。 応答には必須の Access-Control
ヘッダーが含まれます。 この場合、要求は課金されます。
CORS がサービスに対して有効になっていない場合、またはプレフライト要求と一致する CORS ルールがない場合、サービスはステータス コード 403 (Forbidden) で応答します。 この場合、要求は課金されません。
要求の形式が OPTIONS
正しくない場合、サービスは状態コード 400 (無効な要求) で応答し、要求は課金されません。 形式が正しくない要求の例として、必須 Origin
ヘッダーと Access-Control-Request-Method
ヘッダーが含まれていない要求があります。
プレフライト要求は、特定のストレージ アカウントに関連付けられているストレージ サービスの CORS 機能に対してクエリを実行するメカニズムです。 そのため、特定のリソースを対象としていません。