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-Method de 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-Headers de 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