Wstępne żądanie obiektu blob
Operacja Preflight Blob Request
wysyła zapytanie do reguł współużytkowania zasobów między źródłami (CORS) dla Azure Blob Storage przed wysłaniem żądania.
Przeglądarka internetowa lub inny agent użytkownika wysyła żądanie wstępne zawierające domenę, metodę i nagłówki źródła dla żądania, które ma zostać wysłane przez agenta. Jeśli mechanizm CORS jest włączony dla usługi Blob Storage, usługa Blob Storage ocenia żądanie wstępne względem reguł CORS skonfigurowanych przez właściciela konta za pomocą ustawiania właściwości usługi Blob Service. Usługa Blob Storage akceptuje lub odrzuca żądanie.
Aby uzyskać więcej informacji na temat mechanizmu CORS i żądania wstępnego, zobacz specyfikację mechanizmu CORS i obsługę mechanizmu CORS dla usługi Azure Storage.
Żądanie
Można określić Preflight Blob Request
w następujący sposób. Zastąp wartość <account-name>
nazwą konta magazynu. Zastąp <blob-resource>
element zasobem kontenera lub obiektu blob, który będzie obiektem docelowym żądania.
Czasownik HTTP | Identyfikator URI żądania | Wersja PROTOKOŁU HTTP |
---|---|---|
OPTIONS |
http://<account-name>.blob.core.windows.net/<blob-resource> |
HTTP/1.1 |
Identyfikator URI musi zawsze zawierać ukośnik (/), aby oddzielić nazwę hosta od ścieżki i fragmentów zapytania identyfikatora URI. W przypadku tej operacji część ścieżki identyfikatora URI może być pusta lub może wskazywać dowolny zasób kontenera lub obiektu blob.
Zasób może lub nie istnieje w czasie wykonywania żądania wstępnego. Żądanie wstępne jest oceniane na poziomie usługi względem reguł CORS usługi, więc obecność lub brak nazwy zasobu nie wpływa na powodzenie lub niepowodzenie operacji.
Parametry identyfikatora URI
Brak.
Nagłówki żądań
W poniższej tabeli opisano wymagane i opcjonalne nagłówki żądań:
Nagłówek żądania | Opis |
---|---|
Origin |
Wymagane. Określa źródło, z którego zostanie wystawione żądanie. Źródło jest sprawdzane względem reguł CORS usługi w celu określenia powodzenia lub niepowodzenia żądania wstępnego. |
Access-Control-Request-Method |
Wymagane. Określa metodę (lub czasownik HTTP) dla żądania. Metoda jest sprawdzana względem reguł CORS usługi w celu określenia niepowodzenia lub powodzenia żądania wstępnego. |
Access-Control-Request-Headers |
Opcjonalny. Określa nagłówki żądania, które będą wysyłane. Jeśli nie jest obecny, usługa zakłada, że żądanie nie zawiera nagłówków. |
Treść żądania
Brak.
Reakcja
Odpowiedź zawiera kod stanu HTTP i zestaw nagłówków odpowiedzi.
Kod stanu
Pomyślna operacja zwraca kod stanu 200 (OK).
Aby uzyskać informacje o kodach stanu, zobacz Kody stanu i błędów.
Nagłówki odpowiedzi
Odpowiedź na tę operację zawiera następujące nagłówki. Odpowiedź może również zawierać dodatkowe standardowe nagłówki HTTP. Wszystkie standardowe nagłówki są zgodne ze specyfikacją protokołu HTTP/1.1.
Aby uzyskać szczegółowe informacje na temat nagłówków żądań wstępnych, zobacz specyfikację mechanizmu CORS.
Nagłówek odpowiedzi | Opis |
---|---|
Access-Control-Allow-Origin |
Wskazuje dozwolone źródło, które pasuje do nagłówka origin w żądaniu, jeśli żądanie wstępne powiedzie się. |
Access-Control-Allow-Methods |
Jeśli żądanie wstępne zakończy się powodzeniem, ten nagłówek jest ustawiony na wartość lub wartości określone dla nagłówka Access-Control-Request-Method żądania . |
Access-Control-Allow-Headers |
Jeśli żądanie wstępne zakończy się powodzeniem, ten nagłówek jest ustawiony na wartość lub wartości określone dla nagłówka Access-Control-Request-Headers żądania . |
Access-Control-Max-Age |
Określa czas, przez jaki agent użytkownika może buforować żądanie wstępne dla przyszłych żądań. |
Access-Control-Allow-Credentials |
Wskazuje, czy żądanie można wykonać za pomocą poświadczeń. Ten nagłówek jest zawsze ustawiony na true wartość . |
Treść odpowiedzi
Brak.
Autoryzacja
Operacja Preflight Blob Request
zawsze jest wykonywana anonimowo. Nie wymaga autoryzacji i ignoruje poświadczenia, jeśli zostały podane.
Uwaga
Jeśli włączono analizę usługi Azure Storage i rejestrujesz metryki, wywołanie Preflight Blob Request
operacji jest rejestrowane jako AnonymousSuccess
. Z tego powodu, jeśli wyświetlisz metryki w Azure Portal, zobaczysz AnonymousSuccess
zarejestrowane dla elementu Preflight Blob Request
. Ta metryka nie wskazuje, że dane prywatne zostały naruszone, ale tylko że Preflight Blob Request
operacja zakończyła się pomyślnie kodem stanu 200 (OK).
Przykładowe żądanie i odpowiedź
Poniższy przykład wysyła żądanie wstępne dla źródła www.contoso.com
. Metoda żądania jest ustawiona na PUT
, a nagłówki żądań są ustawione na content-type
wartości i accept
.
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
Odpowiedź wskazuje, że mechanizm CORS jest włączony dla usługi i że reguła CORS jest zgodna z żądaniem wstępnym:
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
Uwagi
Jeśli mechanizm CORS jest włączony dla usługi, a reguła CORS jest zgodna z żądaniem wstępnym, usługa odpowiada na żądanie wstępne z kodem stanu 200 (OK). Odpowiedź zawiera wymagane Access-Control
nagłówki. W takim przypadku żądanie jest rozliczane.
Jeśli mechanizm CORS nie jest włączony lub żadna reguła CORS nie pasuje do żądania wstępnego, usługa odpowiada kodem stanu 403 (Zabronione). W takim przypadku żądanie nie jest rozliczane.
OPTIONS
Jeśli żądanie jest źle sformułowane, usługa odpowiada kodem stanu 400 (nieprawidłowe żądanie), a żądanie nie jest rozliczane. Przykładem źle sformułowanego żądania jest to żądanie, które nie zawiera wymaganych Origin
i Access-Control-Request-Method
nagłówków.
Żądanie wstępne to mechanizm do wykonywania zapytań dotyczących możliwości mechanizmu CORS usługi magazynu skojarzonej z określonym kontem magazynu. Żądanie wstępne nie jest przeznaczone dla określonego zasobu.
Rozliczenia
Żądania cen mogą pochodzić od klientów korzystających z interfejsów API usługi Blob Storage bezpośrednio za pośrednictwem interfejsu API REST usługi Blob Storage lub biblioteki klienta usługi Azure Storage. Te żądania naliczają opłaty za transakcję. Typ transakcji wpływa na sposób naliczania opłat za konto. Na przykład transakcje odczytu są naliczane w innej kategorii rozliczeniowej niż transakcje zapisu. W poniższej tabeli przedstawiono kategorię rozliczeń dla Preflight Blob Request
żądań na podstawie typu konta magazynu:
Operacja | Typ konta magazynu | Kategoria rozliczeń |
---|---|---|
Wstępne żądanie obiektu blob | Blokowy obiekt blob w warstwie Premium Standardowa ogólnego przeznaczenia, wersja 2 |
Inne operacje |
Wstępne żądanie obiektu blob | Standardowa ogólnego przeznaczenia, wersja 1 | Operacje odczytu |
Aby dowiedzieć się więcej o cenach dla określonej kategorii rozliczeniowej, zobacz Azure Blob Storage Cennik.
Zobacz też
Operacje na koncie (Blob Storage)
Obsługa mechanizmu CORS dla usługi Azure Storage