Solicitação de simulação de tabela

A Preflight Table Request operação consulta as regras de CORS (Compartilhamento de Recursos entre Origens) para o Armazenamento de Tabelas 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 Tabelas, o Armazenamento de Tabelas avaliará a solicitação de pré-vôo em relação às regras CORS configuradas pelo proprietário da conta por meio de Definir Propriedades do Serviço de Tabela. Em seguida, o Armazenamento de Tabelas 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 Table Request da seguinte maneira. Substitua <account-name> com o nome da sua conta de armazenamento. Substitua <table-resource> pelo nome do recurso de tabela que será o destino da solicitação.

Verbo HTTP URI da solicitação Versão HTTP
OPTIONS http://<account-name> .table.core.windows.net/<table-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 recurso de tabela.

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-Methodde 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-Headersde 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 Table 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 Table 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 Table Request. Essa métrica não indica que seus dados privados foram comprometidos, mas apenas que a Preflight Table 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 PUTe os cabeçalhos de solicitação são definidos como content-type e accept.

OPTIONS http://myaccount.table.core.windows.net/mytable  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.

Confira também

Operações na conta (Armazenamento de Tabelas)
Suporte do CORS para o Armazenamento do Azure