Preflight-Anforderung für den Blob-Dienst
Der Preflight Blob Request
Vorgang fragt die CORS-Regeln (Cross-Origin Resource Sharing) für Azure Blob Storage ab, bevor die Anforderung gesendet wird.
Ein Webbrowser oder ein anderer Benutzer-Agent sendet eine Preflight-Anforderung, die die Ursprungsdomäne, -methode und -header für die Anforderung enthält, die der Agent ausführen möchte. Wenn CORS für Blob Storage aktiviert ist, wertet Blob Storage die Preflight-Anforderung anhand der CORS-Regeln aus, die der Kontobesitzer über Set Blob Service Properties konfiguriert hat. Blob Storage akzeptiert die Anforderung dann oder lehnt sie ab.
Weitere Informationen zu CORS und der Preflight-Anforderung finden Sie unter CORS-Spezifikation und CORS-Unterstützung für Azure Storage.
Anforderung
Sie können wie folgt angeben Preflight Blob Request
. Ersetzen Sie <account-name>
durch den Namen Ihres Speicherkontos. Ersetzen Sie <blob-resource>
durch den Container oder die Blobressource, die das Ziel der Anforderung ist.
HTTP-Verb | Anforderungs-URI | HTTP-Version |
---|---|---|
OPTIONS |
http://<account-name>.blob.core.windows.net/<blob-resource> |
HTTP/1.1 |
Der URI muss immer den Schrägstrich (/) enthalten, um den Hostnamen von den Pfad- und Abfrageabschnitten des URI zu trennen. Bei diesem Vorgang kann der Pfadteil des URI leer sein oder auf eine beliebige Container- oder Blobressource verweisen.
Die Ressource kann zu dem Zeitpunkt vorhanden sein, zu dem die Preflight-Anforderung gestellt wird. Die Preflight-Anforderung wird auf Dienstebene anhand der CORS-Regeln des Diensts ausgewertet, sodass sich das Vorhandensein oder Fehlen des Ressourcennamens nicht auf den Erfolg oder Fehler des Vorgangs auswirkt.
URI-Parameter
Keine.
Anforderungsheader
In der folgenden Tabelle werden erforderliche und optionale Anforderungsheader beschrieben:
Anforderungsheader | BESCHREIBUNG |
---|---|
Origin |
Erforderlich. Gibt den Ursprung an, von dem die Anforderung ausgestellt wird. Die Ursprungsdomäne wird anhand der CORS-Regeln des Diensts überprüft, um zu ermitteln, ob die Preflight-Anforderung erfolgreich oder nicht erfolgreich war. |
Access-Control-Request-Method |
Erforderlich. Gibt die Methode (oder das HTTP-Verb) für die Anforderung an. Die Methode wird anhand der CORS-Regeln des Diensts überprüft, um zu ermitteln, ob die Preflight-Anforderung erfolgreich oder nicht erfolgreich war. |
Access-Control-Request-Headers |
Optional. Gibt die zu sendenden Anforderungsheader an. Wenn sie nicht vorhanden ist, geht der Dienst davon aus, dass die Anforderung keine Header enthält. |
Anforderungstext
Keine.
Antwort
Die Antwort enthält den HTTP-Statuscode und einen Satz von Antwortheadern.
Statuscode
Bei einem erfolgreichen Vorgang wird der Statuscode 200 (OK) zurückgegeben.
Informationen zu status Codes finden Sie unter Status- und Fehlercodes.
Antwortheader
Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann auch zusätzliche HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.
Ausführliche Informationen zu Preflight-Anforderungsheadern finden Sie in der CORS-Spezifikation.
Antwortheader | BESCHREIBUNG |
---|---|
Access-Control-Allow-Origin |
Gibt den zulässigen Ursprung an, der dem Ursprungsheader in der Anforderung entspricht, wenn die Preflight-Anforderung erfolgreich ist. |
Access-Control-Allow-Methods |
Wenn die Preflight-Anforderung erfolgreich ist, wird dieser Header auf den Wert oder die Werte festgelegt, die für den Anforderungsheader Access-Control-Request-Method angegeben sind. |
Access-Control-Allow-Headers |
Wenn die Preflight-Anforderung erfolgreich ist, wird dieser Header auf den Wert oder die Werte festgelegt, die für den Anforderungsheader Access-Control-Request-Headers angegeben sind. |
Access-Control-Max-Age |
Gibt an, wie lange der Benutzer-Agent die Preflight-Anforderung für zukünftige Anforderungen zwischenspeichern darf. |
Access-Control-Allow-Credentials |
Gibt an, ob die Anforderung über Anmeldeinformationen erfolgen kann. Dieser Header ist immer auf true festgelegt. |
Antworttext
Keine.
Authorization
Der Preflight Blob Request
Vorgang wird immer anonym ausgeführt. Es ist keine Autorisierung erforderlich, und es werden Anmeldeinformationen ignoriert, wenn sie bereitgestellt werden.
Hinweis
Wenn Sie Die Azure Storage-Analyse aktiviert haben und Metriken protokollieren, wird ein Aufruf des Vorgangs Preflight Blob Request
als AnonymousSuccess
protokolliert. Aus diesem Grund wird beim Anzeigen von Metriken im Azure-Portal AnonymousSuccess
für Preflight Blob Request
protokolliert. Diese Metrik gibt nicht an, dass Ihre privaten Daten kompromittiert wurden, sondern nur, dass der Preflight Blob Request
Vorgang mit einem status Code von 200 (OK) erfolgreich war.
Beispielanforderung und -antwort
Im folgenden Beispiel wird eine Preflight-Anforderung für den Ursprung www.contoso.com
gesendet. Die Anforderungsmethode ist auf PUT
festgelegt, und die Anforderungsheader sind auf content-type
und accept
festgelegt.
OPTIONS http://myaccount.blob.core.windows.net/mycontainer/myblockblob 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
Die Antwort gibt an, dass CORS für den Dienst aktiviert ist und dass eine CORS-Regel der Preflight-Anforderung entspricht:
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
Hinweise
Wenn CORS für den Dienst aktiviert ist und eine CORS-Regel der Preflight-Anforderung entspricht, antwortet der Dienst auf die Preflight-Anforderung mit status Code 200 (OK). Die Antwort enthält die erforderlichen Access-Control
-Header. In diesem Fall wird die Anforderung in Rechnung gestellt.
Wenn CORS nicht aktiviert ist oder keine CORS-Regel eine Übereinstimmung mit der Preflight-Anforderung aufweist, antwortet der Dienst mit dem Statuscode 403 (Verboten). In diesem Fall wird die Anforderung nicht in Rechnung gestellt.
Wenn die OPTIONS
Anforderung falsch formatiert ist, antwortet der Dienst mit status Code 400 (Ungültige Anforderung), und die Anforderung wird nicht in Rechnung gestellt. Ein Beispiel für eine falsch formatierte Anforderung ist ein Beispiel, das nicht die erforderlichen Origin
Header und Access-Control-Request-Method
enthält.
Die Preflight-Anforderung ist ein Mechanismus zum Abfragen der CORS-Funktion eines Speicherdiensts, der einem bestimmten Speicherkonto zugeordnet ist. Die Preflight-Anforderung hat keine bestimmte Ressource als Ziel.
Abrechnung
Preisanforderungen können von Clients stammen, die Blob Storage-APIs verwenden, entweder direkt über die Blob Storage-REST-API oder aus einer Azure Storage-Clientbibliothek. Für diese Anforderungen fallen Gebühren pro Transaktion an. Die Art der Transaktion wirkt sich auf die Belastung des Kontos aus. Beispielsweise werden Lesetransaktionen in eine andere Abrechnungskategorie als das Schreiben von Transaktionen angewendet. Die folgende Tabelle zeigt die Abrechnungskategorie für Preflight Blob Request
Anforderungen basierend auf dem Speicherkontotyp:
Vorgang | Speicherkontotyp | Abrechnungskategorie |
---|---|---|
Preflight-Anforderung für den Blob-Dienst | Premium, Blockblob Standard „Allgemein v2“ |
Weitere Vorgänge |
Preflight-Anforderung für den Blob-Dienst | Standard „Allgemein v1“ | Dient zum Lesen von Vorgängen. |
Weitere Informationen zu Preisen für die angegebene Abrechnungskategorie finden Sie unter Azure Blob Storage Preise.
Weitere Informationen
Vorgänge für das Konto (Blob Storage)
CORS-Unterstützung für Azure Storage