Richiesta BLOB preliminare

L'operazione Preflight Blob Request esegue una query sulle regole CORS (Cross-Origin Resource Sharing) per Archiviazione BLOB di Azure prima di inviare la richiesta.

Un Web browser o un altro agente utente invia una richiesta preliminare che include il dominio di origine, il metodo e le intestazioni per la richiesta che l'agente vuole effettuare. Se CORS è abilitato per l'archiviazione BLOB, Archiviazione BLOB valuta la richiesta preliminare rispetto alle regole CORS configurate dal proprietario dell'account tramite Imposta proprietà del servizio BLOB. Archiviazione BLOB accetta o rifiuta la richiesta.

Per altre informazioni su CORS e sulla richiesta preliminare, vedere la specifica CORS e ilsupporto CORS per Archiviazione di Azure.

Richiesta

È possibile specificare Preflight Blob Request come segue. Sostituire <account-name> con il nome del proprio account di archiviazione. Sostituire <blob-resource> con il contenitore o la risorsa BLOB che sarà la destinazione della richiesta.

Verbo HTTP URI richiesta Versione HTTP
OPTIONS http://<account-name>.blob.core.windows.net/<blob-resource> HTTP/1.1

L'URI deve sempre includere la barra (/) per separare il nome host dalle parti del percorso e della query dell'URI. Nel caso di questa operazione, la parte del percorso dell'URI può essere vuota oppure può puntare a qualsiasi contenitore o risorsa BLOB.

La risorsa potrebbe essere o meno presente al momento in cui viene effettuata la richiesta preliminare. La richiesta preliminare viene valutata a livello di servizio rispetto alle regole CORS del servizio, pertanto la presenza o l'assenza del nome della risorsa non influisce sull'esito positivo o negativo dell'operazione.

Parametri URI

Nessuno.

Intestazioni della richiesta

La tabella seguente descrive le intestazioni di richiesta obbligatorie e facoltative:

Intestazione della richiesta Descrizione
Origin Obbligatorio. Specifica l'origine da cui verrà inviata la richiesta. L'origine viene confrontata con le regole CORS del servizio per determinare l'esito positivo o negativo della richiesta preliminare.
Access-Control-Request-Method Obbligatorio. Specifica il metodo (o verbo HTTP) per la richiesta. Il metodo viene confrontato con le regole CORS del servizio per determinare l'esito positivo o negativo della richiesta preliminare.
Access-Control-Request-Headers facoltativo. Specifica le intestazioni della richiesta che verranno inviate. Se non è presente, il servizio presuppone che la richiesta non includa intestazioni.

Testo della richiesta

Nessuno.

Risposta

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.

Codice stato

Un'operazione completata correttamente restituisce 200 (OK).

Per informazioni sui codici di stato, vedere Codici di stato e di errore.

Intestazioni di risposta

Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; La risposta potrebbe includere anche intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.

Per informazioni dettagliate sulle intestazioni di richiesta preliminare, vedere la specifica CORS.

Intestazione risposta Descrizione
Access-Control-Allow-Origin Indica l'origine consentita, che corrisponde all'intestazione di origine nella richiesta se la richiesta preliminare ha esito positivo.
Access-Control-Allow-Methods Se la richiesta preliminare ha esito positivo, questa intestazione viene impostata sul valore o sui valori specificati per l'intestazione Access-Control-Request-Methoddella richiesta .
Access-Control-Allow-Headers Se la richiesta preliminare ha esito positivo, questa intestazione viene impostata sul valore o sui valori specificati per l'intestazione Access-Control-Request-Headersdella richiesta .
Access-Control-Max-Age Specifica il periodo di tempo per cui l'agente utente è autorizzato a memorizzare nella cache la richiesta preliminare per le richieste future.
Access-Control-Allow-Credentials Indica se la richiesta può essere effettuata tramite credenziali. Questa intestazione è sempre impostata su true.

Corpo della risposta

Nessuno.

Autorizzazione

L'operazione Preflight Blob Request viene sempre eseguita in modo anonimo. Non richiede l'autorizzazione e ignora le credenziali se vengono fornite.

Nota

Se è stata abilitata l'analisi di Archiviazione di Azure e sono metriche di registrazione, viene registrata una chiamata all'operazione Preflight Blob Request come AnonymousSuccess. Per questo motivo, se si visualizzano le metriche nel portale di Azure, verrà visualizzato AnonymousSuccess il valore registrato per Preflight Blob Request. Questa metrica non indica che i dati privati sono stati compromessi, ma solo che l'operazione Preflight Blob Request è riuscita con un codice di stato 200 (OK).

Richiesta e risposta di esempio

Nell'esempio seguente viene inviata una richiesta preliminare per l'origine www.contoso.com. Il metodo di richiesta è impostato su PUTe le intestazioni della richiesta sono impostate su content-type e 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  
  

La risposta indica che CORS è abilitato per il servizio e che una regola CORS corrisponde alla richiesta preliminare:

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  
  

Commenti

Se CORS è abilitato per il servizio e una regola CORS corrisponde alla richiesta preliminare, il servizio risponde alla richiesta preliminare con codice di stato 200 (OK). Nella richiesta sono incluse le intestazioni Access-Control obbligatorie. In questo caso, la richiesta viene fatturata.

Se la condivisione CORS non è abilitata o non è presente alcuna regola CORS corrispondente alla richiesta preliminare, il servizio risponde con il codice di stato 403 (Non consentito). In questo caso, la richiesta non viene fatturata.

Se la OPTIONS richiesta non è valida, il servizio risponde con il codice di stato 400 (richiesta non valida) e la richiesta non viene fatturata. Un esempio di richiesta in formato non valido è quello che non contiene le intestazioni e Access-Control-Request-Method obbligatorieOrigin.

La richiesta preliminare è un meccanismo per eseguire query sulla funzionalità CORS di un servizio di archiviazione associato a un determinato account di archiviazione. La richiesta preliminare non è indirizzata a una risorsa specifica.

Fatturazione

Le richieste di determinazione dei prezzi possono provenire dai client che usano le API di archiviazione BLOB, direttamente tramite l'API REST di Archiviazione BLOB o da una libreria client di Archiviazione di Azure. Queste richieste accumulano addebiti per transazione. Il tipo di transazione influisce sul modo in cui viene addebitato l'account. Ad esempio, le transazioni di lettura si accumulano in una categoria di fatturazione diversa rispetto alle transazioni di scrittura. La tabella seguente illustra la categoria di fatturazione per Preflight Blob Request le richieste in base al tipo di account di archiviazione:

Operazione Tipo di account di archiviazione Categoria di fatturazione
Richiesta BLOB preliminare BLOB in blocchi Premium
Utilizzo generico v2 Standard
Altre operazioni
Richiesta BLOB preliminare Standard per utilizzo generico v1 Operazioni di lettura

Per informazioni sui prezzi per la categoria di fatturazione specificata, vedere prezzi Archiviazione BLOB di Azure.

Vedi anche

Operazioni sull'account (archiviazione BLOB)
Supporto CORS per Archiviazione di Azure