Demande de table préliminaire

L’opération Preflight Table Request interroge les règles CORS (Cross-Origin Resource Sharing) pour Stockage Table Azure avant d’envoyer la requête.

Un navigateur web ou un autre agent utilisateur envoie une demande préliminaire qui inclut le domaine d’origine, la méthode et les en-têtes pour la demande que l’agent souhaite effectuer. Si CORS est activé pour le stockage table, le stockage table évalue la demande de préversion par rapport aux règles CORS que le propriétaire du compte a configurées via Définir les propriétés du service de table. Le stockage table accepte ou rejette ensuite la demande.

Pour plus d’informations sur CORS et la demande préliminaire, consultez la spécification CORS et laprise en charge de CORS pour stockage Azure.

Requête

Vous pouvez spécifier Preflight Table Request comme suit. Remplacez <account-name> par le nom de votre compte de stockage. Remplacez par <table-resource> le nom de la ressource de table qui sera la cible de la requête.

Verbe HTTP URI de demande Version HTTP
OPTIONS http://<account-name> .table.core.windows.net/<table-resource> HTTP/1.1

L’URI doit toujours inclure la barre oblique (/) pour séparer le nom d’hôte des parties chemin d’accès et requête de l’URI. Dans le cas de cette opération, la partie chemin d’accès de l’URI peut être vide ou pointer vers n’importe quelle ressource de table.

La ressource peut exister ou ne pas exister au moment où la demande préliminaire est effectuée. La demande préliminaire est évaluée au niveau du service par rapport aux règles CORS du service, de sorte que la présence ou l’absence du nom de la ressource n’affecte pas la réussite ou l’échec de l’opération.

Paramètres URI

Aucun.

En-têtes de requête

Le tableau suivant décrit les en-têtes de requête obligatoires et facultatifs :

En-tête de requête Description
Origin Obligatoire. Spécifie l’origine à partir de laquelle la demande sera émise. L'origine est comparée aux règles CORS du service afin de déterminer le succès ou l'échec de la demande préliminaire.
Access-Control-Request-Method Obligatoire. Spécifie la méthode (ou le verbe HTTP) pour la requête. La méthode est comparée aux règles CORS du service afin de déterminer le succès ou l'échec de la demande préliminaire.
Access-Control-Request-Headers Optionnel. Spécifie les en-têtes de requête qui seront envoyés. S’il n’est pas présent, le service part du principe que la requête n’inclut pas d’en-têtes.

Corps de la demande

Aucun.

response

La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.

Code d’état

Une opération réussie envoie le code d'état 200 (OK).

Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur.

En-têtes de réponse

La réponse de l'opération inclut les en-têtes suivants. La réponse peut également inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.

Pour plus d’informations sur les en-têtes de requête préliminaire, consultez la spécification CORS.

En-tête de réponse Description
Access-Control-Allow-Origin Indique l’origine autorisée, qui correspond à l’en-tête d’origine dans la demande si la demande préliminaire réussit.
Access-Control-Allow-Methods Si la demande préliminaire réussit, cet en-tête est défini sur la ou les valeurs spécifiées pour l’en-tête Access-Control-Request-Methodde requête .
Access-Control-Allow-Headers Si la demande préliminaire réussit, cet en-tête est défini sur la ou les valeurs spécifiées pour l’en-tête Access-Control-Request-Headersde requête .
Access-Control-Max-Age Spécifie la durée pendant laquelle l’agent utilisateur est autorisé à mettre en cache la demande préliminaire pour les demandes futures.
Access-Control-Allow-Credentials Indique si la demande peut être effectuée via des informations d’identification. Cet en-tête a toujours la valeur true.

Response body

Aucun.

Autorisation

L’opération Preflight Table Request s’exécute toujours de manière anonyme. Il ne nécessite pas d’autorisation et ignore les informations d’identification si elles sont fournies.

Notes

Si vous avez activé l’analytique stockage Azure et que vous journalise les métriques, un appel à l’opération Preflight Table Request est enregistré sous la forme AnonymousSuccess. Pour cette raison, si vous affichez des métriques dans le Portail Azure, vous verrez AnonymousSuccess journalisé pour Preflight Table Request. Cette métrique n’indique pas que vos données privées ont été compromises, mais seulement que l’opération Preflight Table Request a réussi avec un code de status de 200 (OK).

Exemple de requête et de réponse

L’exemple suivant envoie une demande préliminaire pour l’origine www.contoso.com. La méthode de requête est définie sur PUT, et les en-têtes de requête sont définis sur content-type et accept.

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  
  

La réponse indique que CORS est activé pour le service et qu’une règle CORS correspond à la demande préliminaire :

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  
  

Notes

Si CORS est activé pour le service et qu’une règle CORS correspond à la demande de contrôle préliminaire, le service répond à la demande préliminaire avec status code 200 (OK). Cette réponse comprend les en-têtes Access-Control nécessaires. Dans ce cas, la demande est facturée.

Si les règles CORS ne sont pas activées ou si aucune d'elles ne correspond à la demande préliminaire, le service répond avec le code d'état 403 (Interdit). Dans ce cas, la demande n’est pas facturée.

Si la OPTIONS demande est incorrecte, le service répond avec status code 400 (demande incorrecte) et la demande n’est pas facturée. Un exemple de requête incorrecte est une requête qui ne contient pas les en-têtes et Access-Control-Request-Method requisOrigin.

La demande préliminaire est un mécanisme permettant d’interroger la fonctionnalité CORS d’un service de stockage associé à un compte de stockage spécifique. La demande préliminaire n'est pas destinée à une ressource spécifique.

Voir aussi

Opérations sur le compte (Stockage Table)
Prise en charge de CORS pour stockage Azure