プレフライト テーブル要求
この操作は Preflight Table Request
、要求を送信する前に、Azure Table Storage のクロスオリジン リソース共有 (CORS) 規則に対してクエリを実行します。
Web ブラウザーまたは別のユーザー エージェントは、エージェントが行う要求の配信元ドメイン、メソッド、ヘッダーを含むプレフライト要求を送信します。 Table Storage に対して CORS が有効になっている場合、Table Storage は、アカウント所有者が Table Service のプロパティの設定を使用して構成した CORS 規則に対してプレフライト要求を評価します。 その後、Table Storage は要求を受け入れるか拒否します。
CORS とプレフライト要求の詳細については、Azure Storage の CORS 仕様 と CORS のサポートに関するページを参照してください。
要求
次のように指定 Preflight Table Request
できます。
<account-name>
をストレージ アカウントの名前に置き換えます。 を、要求のターゲットとなるテーブル リソースの名前に置き換えます <table-resource>
。
HTTP 動詞 | 要求 URI | HTTP バージョン |
---|---|---|
OPTIONS |
http://<account-name> .table.core.windows.net/<table-resource> |
HTTP/1.1 |
URI のパスとクエリ部分からホスト名を区切るために、URI には常にスラッシュ (/) を含める必要があります。 この操作の場合、URI のパス部分は空にすることも、任意のテーブル リソースを指すことができます。
プレフライト要求が行われた時点で、リソースが存在する場合と存在しない場合があります。 プレフライト要求はサービス の CORS 規則に対してサービス レベルで評価されるため、リソース名の有無は操作の成功または失敗には影響しません。
URI パラメーター
なし。
要求ヘッダー
次の表では、必須および省略可能な要求ヘッダーについて説明します。
要求ヘッダー | 説明 |
---|---|
Origin |
必須。 要求の発行元を指定します。 プレフライト要求の成功または失敗を決定するために、送信元はサービスの CORS ルールと照合されます。 |
Access-Control-Request-Method |
必須。 要求のメソッド (または HTTP 動詞) を指定します。 プレフライト要求の成功または失敗を決定するために、メソッドはサービスの CORS ルールと照合されます。 |
Access-Control-Request-Headers |
省略可能。 送信する要求ヘッダーを指定します。 存在しない場合、サービスは要求にヘッダーが含まれていないと想定します。 |
要求本文
なし。
[応答]
応答には、HTTP 状態コードおよび一連の応答ヘッダーが含まれています。
状態コード
操作に成功すると、状態コード 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 Table Request
常に匿名で実行されます。 承認は必要ありません。資格情報が指定されている場合は無視されます。
注意
Azure Storage 分析を有効にし、メトリックをログに記録している場合、操作の Preflight Table Request
呼び出しは として AnonymousSuccess
ログに記録されます。 このため、Azure portalでメトリックを表示すると、 のログが表示AnonymousSuccess
されますPreflight Table Request
。 このメトリックは、プライベート データが侵害されたことを示すものではなく、 Preflight Table Request
状態コード 200 (OK) で操作が成功したことを示しています。
要求と応答の例
次の例では、配信元 に対してプレフライト要求を送信します www.contoso.com
。 要求メソッドは にPUT
設定され、要求ヘッダーは と accept
にcontent-type
設定されます。
OPTIONS http://myaccount.table.core.windows.net/mytable 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 機能に対してクエリを実行するメカニズムです。 そのため、特定のリソースを対象としていません。