Preflight File Request
L'operazione Preflight File Request
esegue una query sulle regole CORS (Cross-Origin Resource Sharing) per File 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 File di Azure, File di Azure valuta la richiesta preliminare rispetto alle regole CORS configurate dal proprietario dell'account tramite Imposta proprietà del servizio file. File di Azure 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.
Disponibilità del protocollo
Protocollo di condivisione file abilitato | Disponibile |
---|---|
SMB | |
NFS |
Richiesta
È possibile specificare Preflight File Request
come indicato di seguito. Sostituire <account-name>
con il nome del proprio account di archiviazione. Sostituire <file-resource>
con la risorsa di condivisione, directory o file che sarà la destinazione della richiesta.
Verbo HTTP | URI richiesta | Versione HTTP |
---|---|---|
OPTIONS |
http://<account-name>.file.core.windows.net/<file-resource> http://<account-name>.file.core.windows.net/<file-resource>?restype=share http://<account-name>.file.core.windows.net/<file-resource>?restype=directory |
HTTP/1.1 |
L'URI deve sempre includere la barra di inoltro (/) per separare il nome host dalla parte 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 risorsa File di Azure. Se la risorsa File di Azure è una condivisione o una directory, è necessario il restype
parametro di query.
La risorsa potrebbe o non esistere al momento dell'esecuzione della 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
Nella tabella seguente vengono descritte le intestazioni richieste e facoltative:
Intestazione della richiesta | Descrizione |
---|---|
Origin |
Obbligatorio. Specifica l'origine da cui verrà emessa 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 il 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 |
Facoltativa. Specifica le intestazioni della richiesta che verranno inviate. Se non è presente, il servizio presuppone che la richiesta non includa intestazioni. |
x-ms-allow-trailing-dot: { <Boolean> } |
Facoltativa. Versione 2022-11-02 e versioni successive. Il valore booleano specifica se un punto finale presente nell'URL della richiesta deve essere tagliato o meno. Per altre informazioni, vedere Denominazione e riferimenti a condivisioni, directory, file e metadati. |
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).
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 è impostata sul valore o sui valori specificati per l'intestazione Access-Control-Request-Method della richiesta. |
Access-Control-Allow-Headers |
Se la richiesta preliminare ha esito positivo, questa intestazione è impostata sul valore o sui valori specificati per l'intestazione Access-Control-Request-Headers della richiesta. |
Access-Control-Max-Age |
Specifica il periodo di tempo consentito all'agente utente per 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 File 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 si registrano le metriche, viene registrata una chiamata all'operazione Preflight File Request
come AnonymousSuccess
. Per questo motivo, se si visualizzano le metriche nella portale di Azure, verrà AnonymousSuccess
visualizzato l'accesso per Preflight File Request
. Questa metrica non indica che i dati privati sono stati compromessi, ma solo che l'operazione Preflight File Request
ha avuto esito positivo con un codice di stato 200 (OK).
Richiesta di esempio e risposta
Nell'esempio seguente viene inviata una richiesta preliminare per l'origine www.contoso.com
. Il metodo request è impostato su PUT
e le intestazioni della richiesta sono impostate su content-type
e accept
.
OPTIONS http://myaccount.file.core.windows.net/myshare/myfile
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 non formattata è uno 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.