Solicitação de simulação de blob
A Preflight Blob Request
operação consulta as regras de CORS (Compartilhamento de Recursos entre Origens) para Armazenamento de Blobs 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 o Armazenamento de Blobs, o Armazenamento de Blobs avaliará a solicitação de pré-voo em relação às regras cors configuradas pelo proprietário da conta por meio de Definir Propriedades do Serviço blob. Em seguida, o Armazenamento de Blobs aceita ou rejeita a solicitação.
Para obter mais informações sobre o CORS e a solicitação de pré-voo, consulte a especificação cors e osuporte a CORS para o Armazenamento do Azure.
Solicitação
Você pode especificar Preflight Blob Request
da seguinte maneira. Substitua <account-name>
com o nome da sua conta de armazenamento. Substitua <blob-resource>
pelo contêiner ou recurso de blob que será o destino da solicitação.
Verbo HTTP | URI da solicitação | Versão HTTP |
---|---|---|
OPTIONS |
http://<account-name>.blob.core.windows.net/<blob-resource> |
HTTP/1.1 |
O URI sempre deve incluir a barra (/) para separar o nome do host das partes de caminho e consulta do URI. No caso dessa operação, a parte do caminho do URI pode estar vazia ou apontar para qualquer contêiner ou recurso de blob.
O recurso pode ou não existir no momento em que a solicitação de pré-voo é feita. A solicitação de pré-voo é 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. |
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).
Para obter informações sobre códigos de status, consulte Códigos de status e de erro.
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 pré-vô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 pré-vôo for bem-sucedida. |
Access-Control-Allow-Methods |
Se a solicitação de pré-vôo for bem-sucedida, esse cabeçalho será definido como o valor ou os valores especificados para o cabeçalho Access-Control-Request-Method de solicitação . |
Access-Control-Allow-Headers |
Se a solicitação de pré-vôo for bem-sucedida, esse cabeçalho será definido como o valor ou os valores especificados para o cabeçalho Access-Control-Request-Headers de solicitação . |
Access-Control-Max-Age |
Especifica o período de tempo em que o agente do usuário tem permissão para armazenar em cache a solicitação de pré-voo 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 Blob Request
operação sempre é executada anonimamente. Ele não requer autorização e ignora as credenciais se elas forem fornecidas.
Observação
Se você habilitou a análise do Armazenamento do Azure e está registrando métricas, uma chamada para a Preflight Blob Request
operação será registrada como AnonymousSuccess
. Por esse motivo, se você exibir métricas no portal do Azure, verá AnonymousSuccess
registrado em log para Preflight Blob Request
. Essa métrica não indica que seus dados privados foram comprometidos, mas apenas que a Preflight Blob Request
operação foi bem-sucedida com um código status de 200 (OK).
Exemplo de solicitação e resposta
O exemplo a seguir envia uma solicitação de pré-vôo para a origem www.contoso.com
. O método de solicitação é definido como PUT
e os cabeçalhos de solicitação são definidos como 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
A resposta indica que o CORS está habilitado para o serviço e que uma regra CORS corresponde à solicitação de pré-vô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 pré-vôo, o serviço responderá à solicitação de pré-voo 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 pré-voo é 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.
Cobrança
As solicitações de preços podem ser originadas de clientes que usam APIs de Armazenamento de Blobs, diretamente por meio da API REST do Armazenamento de Blobs ou de uma biblioteca de clientes do Armazenamento do Azure. Essas solicitações acumulam encargos por transação. O tipo de transação afeta a forma como a conta é cobrada. Por exemplo, as transações de leitura se acumulam em uma categoria de cobrança diferente das transações de gravação. A tabela a seguir mostra a categoria de cobrança para Preflight Blob Request
solicitações com base no tipo de conta de armazenamento:
Operação | Tipo de conta de armazenamento | Categoria de cobrança |
---|---|---|
Solicitação de simulação de blob | Blob de blocos Premium Uso geral v2 Standard |
Outras operações |
Solicitação de simulação de blob | Uso geral v1 Standard | Operações de leitura |
Para saber mais sobre os preços para a categoria de cobrança especificada, consulte Armazenamento de Blobs do Azure Preços.
Confira também
Operações na conta (Armazenamento de Blobs)
Suporte do CORS para o Armazenamento do Azure