Solicitud preparatoria de archivos
La Preflight File Request
operación consulta las reglas de uso compartido de recursos entre orígenes (CORS) para Azure Files antes de enviar la solicitud.
Un explorador web u otro agente de usuario envía una solicitud preparatoria que incluye el dominio de origen, el método y los encabezados de la solicitud que el agente quiere realizar. Si CORS está habilitado para Azure Files, Azure Files evalúa la solicitud preparatoria en las reglas de CORS que el propietario de la cuenta ha configurado a través de Establecer propiedades del servicio de archivos. Azure Files luego acepta o rechaza la solicitud.
Para más información sobre CORS y la solicitud preparatoria, consulte la especificación de CORS y la compatibilidad con CORS para Azure Storage.
Disponibilidad del protocolo
Protocolo de recurso compartido de archivos habilitado | Disponible |
---|---|
SMB | |
NFS |
Solicitud
Puede especificar Preflight File Request
como se indica a continuación. Reemplace <account-name>
por el nombre de la cuenta de almacenamiento. Reemplace por <file-resource>
el recurso compartido, directorio o archivo que será el destino de la solicitud.
Verbo HTTP | URI de solicitud | Versión de 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 |
El URI siempre debe incluir la barra diagonal (/) para separar el nombre de host de la ruta de acceso y las partes de consulta del URI. En el caso de esta operación, la parte de ruta de acceso del URI puede estar vacía o puede apuntar a cualquier recurso Azure Files. Si el recurso Azure Files es un recurso compartido o un directorio, se requiere el restype
parámetro de consulta.
El recurso podría existir o no en el momento en que se realiza la solicitud preparatoria. La solicitud preparatoria se evalúa en el nivel de servicio con respecto a las reglas de CORS del servicio, por lo que la presencia o ausencia del nombre del recurso no afecta al éxito o error de la operación.
Parámetros del identificador URI
Ninguno.
Encabezados de solicitud
En la tabla siguiente se describen los encabezados de solicitud obligatorios y opcionales:
Encabezado de solicitud | Descripción |
---|---|
Origin |
Necesario. Especifica el origen desde el que se emitirá la solicitud. El origen se compara con las reglas de CORS del servicio para determinar el éxito o el error de la solicitud preparatoria. |
Access-Control-Request-Method |
Necesario. Especifica el método (o verbo HTTP) para la solicitud. El método se compara con las reglas de CORS del servicio para determinar el error o el éxito de la solicitud preparatoria. |
Access-Control-Request-Headers |
Opcional. Especifica los encabezados de solicitud que se enviarán. Si no está presente, el servicio asume que la solicitud no incluye encabezados. |
x-ms-allow-trailing-dot: { <Boolean> } |
Opcional. Versión 2022-11-02 y posteriores. El valor booleano especifica si se debe recortar o no un punto final presente en la dirección URL de solicitud. Para obtener más información, consulte Nomenclatura y referencia a recursos compartidos, directorios, archivos y metadatos. |
Cuerpo de la solicitud
Ninguno.
Response
La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta.
status code
Una operación correcta devuelve el código de estado 200 Correcto.
Encabezados de respuesta
La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir encabezados HTTP estándar adicionales. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1.
Para obtener más información sobre los encabezados de solicitud preparatoria, consulte la especificación CORS.
Encabezado de respuesta | Descripción |
---|---|
Access-Control-Allow-Origin |
Indica el origen permitido, que coincide con el encabezado de origen de la solicitud si la solicitud preparatoria se realiza correctamente. |
Access-Control-Allow-Methods |
Si la solicitud preparatoria se realiza correctamente, este encabezado se establece en el valor o los valores especificados para el encabezado Access-Control-Request-Method de solicitud . |
Access-Control-Allow-Headers |
Si la solicitud preparatoria se realiza correctamente, este encabezado se establece en el valor o los valores especificados para el encabezado Access-Control-Request-Headers de solicitud . |
Access-Control-Max-Age |
Especifica el período de tiempo que el agente de usuario puede almacenar en caché la solicitud preparatoria para futuras solicitudes. |
Access-Control-Allow-Credentials |
Indica si la solicitud se puede realizar a través de credenciales. Este encabezado siempre se establece en true . |
Response body
Ninguno.
Authorization
La Preflight File Request
operación siempre se ejecuta de forma anónima. No requiere autorización y omite las credenciales si se proporcionan.
Nota:
Si ha habilitado Azure Storage Analytics y está registrando métricas, se registra una llamada a la Preflight File Request
operación como AnonymousSuccess
. Por este motivo, si ve las métricas en el Azure Portal, verá AnonymousSuccess
que ha iniciado sesión para Preflight File Request
. Esta métrica no indica que los datos privados se han puesto en peligro, pero solo que la Preflight File Request
operación se realizó correctamente con un código de estado de 200 (CORRECTO).
Solicitud y respuesta de ejemplo
En el ejemplo siguiente se envía una solicitud preparatoria para el origen www.contoso.com
. El método de solicitud se establece PUT
en y los encabezados de solicitud se establecen en content-type
y 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 respuesta indica que CORS está habilitado para el servicio y que una regla de CORS coincide con la solicitud preparatoria:
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
Observaciones
Si CORS está habilitado para el servicio y una regla de CORS coincide con la solicitud preparatoria, el servicio responde a la solicitud preparatoria con el código de estado 200 (CORRECTO). La respuesta incluye los encabezados Access-Control
necesarios. En este caso, se factura la solicitud.
Si CORS no se ha habilitado o no hay ninguna regla de CORS que coincida con la solicitud preparatoria, el servicio responde con el código de estado 403 (Forbidden). En este caso, la solicitud no se factura.
Si la OPTIONS
solicitud tiene un formato incorrecto, el servicio responde con el código de estado 400 (solicitud incorrecta) y la solicitud no se factura. Un ejemplo de una solicitud con formato incorrecto es una que no contiene los encabezados y Access-Control-Request-Method
obligatoriosOrigin
.
La solicitud preparatoria es un mecanismo para consultar la funcionalidad CORS de un servicio de almacenamiento asociado a una cuenta de almacenamiento determinada. La solicitud preparatoria no está destinada a un recurso específico.