Solicitação de arquivo de simulação

A Preflight File Request operação consulta as regras de CORS (Compartilhamento de Recursos entre Origens) para Arquivos do Azure antes de enviar a solicitação.

Um navegador da Web ou outro agente de usuário envia uma solicitação de simulação que inclui o domínio de origem, o método e os cabeçalhos para a solicitação que o agente deseja fazer. Se o CORS estiver habilitado para Arquivos do Azure, Arquivos do Azure avaliará a solicitação de simulação em relação às regras cors que o proprietário da conta configurou por meio de Definir Propriedades do Serviço de Arquivo. Arquivos do Azure aceita ou rejeita a solicitação.

Para obter mais informações sobre o CORS e a solicitação de simulação, consulte a especificação cors e o suporte a CORS para o Armazenamento do Azure.

Disponibilidade do protocolo

Protocolo de compartilhamento de arquivos habilitado Disponível
SMB Sim
NFS Sim

Solicitação

Você pode especificar Preflight File Request da seguinte maneira. Substitua <account-name> com o nome da sua conta de armazenamento. Substitua <file-resource> pelo recurso de compartilhamento, diretório ou arquivo que será o destino da solicitação.

Verbo HTTP URI da solicitação Versão 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

O URI sempre deve incluir a barra (/) para separar o nome do host do caminho e as partes de consulta do URI. No caso dessa operação, a parte do caminho do URI pode estar vazia ou apontar para qualquer recurso Arquivos do Azure. Se o recurso Arquivos do Azure for um compartilhamento ou um diretório, o restype parâmetro de consulta será necessário.

O recurso pode ou não existir no momento em que a solicitação de simulação é feita. A solicitação de simulação é avaliada no nível de serviço em relação às regras CORS do serviço, portanto, a presença ou ausência do nome do recurso não afeta o êxito ou a falha da operação.

Parâmetros do URI

Nenhum.

Cabeçalhos da solicitação

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais:

Cabeçalho da solicitação Descrição
Origin Obrigatórios. Especifica a origem da qual a solicitação será emitida. A origem é verificada em relação às regras de CORS de serviço para determinar o êxito ou a falha da solicitação de simulação.
Access-Control-Request-Method Obrigatórios. Especifica o método (ou verbo HTTP) para a solicitação. O método é verificado em relação às regras de CORS de serviço para determinar a falha ou êxito da solicitação de simulação.
Access-Control-Request-Headers Opcional. Especifica os cabeçalhos de solicitação que serão enviados. Se não estiver presente, o serviço pressupõe que a solicitação não inclua cabeçalhos.
x-ms-allow-trailing-dot: { <Boolean> } Opcional. Versão 2022-11-02 e posterior. O valor booliano especifica se um ponto à direita presente na URL de solicitação deve ser cortado ou não. Para obter mais informações, consulte Nomenclatura e referência de compartilhamentos, diretórios, arquivos e metadados.

Corpo da solicitação

Nenhum.

Resposta

A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.

Código de status

Uma operação bem-sucedida retorna o código de status 200 (OK).

Cabeçalhos de resposta

A resposta para esta operação inclui os cabeçalhos a seguir. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.

Para obter detalhes sobre cabeçalhos de solicitação de simulação, consulte a especificação cors.

Cabeçalho de resposta Descrição
Access-Control-Allow-Origin Indica a origem permitida, que corresponde ao cabeçalho de origem na solicitação se a solicitação de simulação for bem-sucedida.
Access-Control-Allow-Methods Se a solicitação de simulação for bem-sucedida, esse cabeçalho será definido como o valor ou os valores especificados para o cabeçalho Access-Control-Request-Methodde solicitação .
Access-Control-Allow-Headers Se a solicitação de simulação for bem-sucedida, esse cabeçalho será definido como o valor ou os valores especificados para o cabeçalho Access-Control-Request-Headersde solicitação .
Access-Control-Max-Age Especifica o período de tempo que o agente do usuário tem permissão para armazenar em cache a solicitação de simulação para solicitações futuras.
Access-Control-Allow-Credentials Indica se a solicitação pode ser feita por meio de credenciais. Este cabeçalho é sempre definido como true.

Corpo da resposta

Nenhum.

Autorização

A Preflight File Request operação sempre é executada anonimamente. Ele não requer autorização e ignora as credenciais se elas forem fornecidas.

Observação

Se você tiver habilitado a análise do Armazenamento do Azure e estiver registrando métricas em log, uma chamada para a Preflight File Request operação será registrada como AnonymousSuccess. Por esse motivo, se você exibir métricas no portal do Azure, verá AnonymousSuccess registrado para Preflight File Request. Essa métrica não indica que seus dados privados foram comprometidos, mas apenas que a Preflight File Request operação foi bem-sucedida com um código de status de 200 (OK).

Exemplo de solicitação e resposta

O exemplo a seguir envia uma solicitação de simulação para a origem www.contoso.com. O método de solicitação é definido PUTcomo e os cabeçalhos de solicitação são definidos como 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    

A resposta indica que o CORS está habilitado para o serviço e que uma regra CORS corresponde à solicitação de simulação:

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

Comentários

Se o CORS estiver habilitado para o serviço e uma regra CORS corresponder à solicitação de simulação, o serviço responderá à solicitação de simulação com status código 200 (OK). A resposta inclui os cabeçalhos Access-Control necessários. Nesse caso, a solicitação é cobrada.

Se CORS não estiver habilitado ou nenhuma regra CORS corresponder à solicitação de simulação, o serviço responde com o código de status 403 (Proibido). Nesse caso, a solicitação não é cobrada.

Se a solicitação OPTIONS estiver malformada, o serviço responderá com status código 400 (Solicitação Incorreta) e a solicitação não será cobrada. Um exemplo de uma solicitação malformada é aquele que não contém os cabeçalhos e Access-Control-Request-Method necessáriosOrigin.

A solicitação de simulação é um mecanismo para consultar a funcionalidade CORS de um serviço de armazenamento associado a uma determinada conta de armazenamento. A solicitação de simulação não é destinada a um recurso específico.