Os cabeçalhos de resposta de saída dos nós do Edge Security Acceleration (ESA) fazem parte dos cabeçalhos de resposta HTTP enviados aos clientes. Ao configurar os cabeçalhos de resposta de saída no ESA, você controla os cabeçalhos retornados com os recursos. O ESA permite que você crie, modifique e exclua regras de cabeçalho de resposta de saída para atender a requisitos de negócios específicos.
Introdução à função
Quando um cliente solicita um recurso, a solicitação chega primeiro ao ESA. Se a solicitação não for encontrada no cache do nó do ESA, uma solicitação de origem será enviada ao servidor de origem para recuperar os dados. Após o servidor de origem retornar os dados, o nó do ESA modifica a resposta original com base nas regras de cabeçalho de resposta configuradas, como adicionar, substituir ou excluir campos específicos. Em seguida, o nó retorna o recurso completo, incluindo os cabeçalhos de resposta, ao cliente para atender aos requisitos de negócios de controle de acesso entre domínios e otimização de política de cache.
Cenários
Informar ao cliente o tipo de recurso do arquivo de resposta do ESA: por exemplo, adicione o cabeçalho de resposta
Content-Type: text/htmlpara informar ao cliente que o arquivo de resposta do ESA está no formato HTML, o que permite que o cliente o renderize adequadamente.Ativar o acesso a recursos de origem cruzada: quando um usuário solicita um recurso de um nome de domínio no ESA, ative o acesso entre origens configurando o cabeçalho de resposta
Access-Control-Allow-Originna resposta do ESA. Para mais informações, consulte Configure cross-origin resource sharing.Personalizar o comportamento da resposta: adicione ou modifique cabeçalhos personalizados para ajustar o conteúdo e o formato das respostas recebidas pelo cliente. Isso permite que você ative recursos ou rastreamentos específicos com base nas suas necessidades de negócios.
Observações
Se várias regras forem configuradas, elas serão executadas na ordem em que estão listadas, de cima para baixo. Se várias regras especificarem o mesmo nome de cabeçalho de resposta, uma regra posterior substituirá uma anterior. Esse comportamento pode levar a resultados inesperados.
Exemplo 1
A resposta original inclui o cabeçalho
test:123.Uma regra adiciona o cabeçalho
test:321.
Se a resposta corresponder à regra, o cabeçalho original test:123 será substituído por test:321.
Exemplo 2
A resposta original inclui o cabeçalho
test:123.Uma regra adiciona o cabeçalho
test:321, seguida por outra regra que exclui o cabeçalhotest.
Se a resposta corresponder às regras, o cabeçalho original test:123 será excluído.
Procedimento
Após adicionar uma regra, o ESA corresponde e executa as regras sequencialmente com base na rule execution priority sempre que um usuário solicita um recurso.
No console do ESA, acesse Websites. Na coluna Websites, clique no site de destino.
No painel de navegação à esquerda, escolha .
Selecione a aba Modify Response Header, clique no item ESA to Client e, em seguida, clique em Create Rule.
Clique em Create Rule. Na seção If requests match..., defina os critérios de correspondência para as solicitações do usuário. Para mais informações, consulte Rule expression syntax.
-
Na seção Create Rule, selecione uma Operation, insira um Modify Response Header e um Response Header Value e, em seguida, clique em Response Header Name.
Ação
Modo
Descrição
Exemplo
Add
Static
Adiciona o cabeçalho de resposta especificado à resposta do servidor de origem. Se já existir um cabeçalho com o mesmo nome, o novo cabeçalho o substituirá.
Para adicionar um cabeçalho de resposta chamado
x-codecom o valorkey1, defina Header Name comox-codee Header Value comokey1.Add
Dynamic
O valor do cabeçalho de resposta pode ser uma expressão de regra.
Para adicionar um cabeçalho de resposta chamado
Client-Ip-Geo-Locationcom o valor dinâmicoip.geoip.countryque registra o país ou região do IP do cliente, defina Header Name comoClient-Ip-Geo-Locatione Header Value comoip.geoip.country.Modify
Static
Altera o valor de um cabeçalho de resposta especificado na resposta do servidor de origem.
Para alterar o valor do cabeçalho de resposta
x-codeparakey2, defina Header Name comox-codee Header Value comokey2.Modify
Dynamic
O valor do cabeçalho de resposta pode ser uma expressão de regra.
Para alterar o valor do cabeçalho de resposta
Client-Ip-Geo-Locationpara o valor dinâmicoip.geoip.country, defina Header Name comoClient-Ip-Geo-Locatione Header Value comoip.geoip.country.Delete
—
Exclui todas as instâncias do cabeçalho que correspondem ao nome de cabeçalho especificado da resposta do servidor de origem. A operação de exclusão é a mesma para os modos estático e dinâmico.
Para excluir o cabeçalho de resposta
x-code, defina Header Name comox-code.NotaNão é possível configurar um nome de cabeçalho que comece com
ali-swift,ali-esa-inner,x-swiftoux-site(não diferencia maiúsculas de minúsculas).O sistema permite que você especifique vários valores no campo Header Value. Separe os valores com uma vírgula (
,).A ação Modify altera um cabeçalho de resposta existente e só entra em vigor se existir um cabeçalho com o nome especificado na resposta original.
Exemplo de configuração
Se você usar o OSS como servidor de origem e configurar o CORS nos consoles do OSS e do ESA, a configuração do ESA substituirá o CORS settings do OSS.
Aplicar a todas as solicitações
Caso de uso
Permitir que todas as solicitações do seu site (example.com) acessem recursos de qualquer origem.
Etapas
No console do ESA, selecione Websites. Na coluna Website, clique no site de destino.
No painel de navegação à esquerda, escolha . Na página Website, clique na aba Modify Response Header. Defina Response Header Position como ESA to Client e, em seguida, clique no botão Create Rule.

-
Na página Create Response Header Modification Rule, configure os parâmetros da seguinte forma:
Rule Name: insira um nome de regra personalizado, como
rule-cors-for-all.If requests match...: selecione All Requests.
-
Then execute...: configure os seguintes parâmetros:
Type: selecione Static.
Operation: selecione Add.
Response Header Name: insira
Access-Control-Allow-Origin.Response Header Value: insira
*.

Resultado
Para qualquer solicitação de origem cruzada, o ESA adiciona o cabeçalho Access-Control-Allow-Origin: * à resposta, permitindo que o navegador exiba o recurso de origem cruzada.

Aplicar a solicitações específicas
Caso de uso
Permitir acesso de origem cruzada quando o cabeçalho origin corresponder a um subdomínio de example.com por HTTP ou HTTPS. Por exemplo:
origin:http://www.example.comorigin:https://www.example.comorigin:http://image.example.comorigin:https://image.example.com
O valor do cabeçalho de resposta CORS deve corresponder ao cabeçalho origin na solicitação.
Etapas de configuração
No console do ESA, selecione Websites. Na coluna Website, clique no site de destino.
No painel de navegação à esquerda, escolha . Na página Transform Rules, clique na aba Website. Defina Response Header Position como Rules e, em seguida, clique no botão Transform Rules.

-
Na página Transform Rules, configure os parâmetros da seguinte forma:
Modify Response Header: insira um nome de regra personalizado, como
rule-cors-origin.-
ESA to Client: para este exemplo, defina a condição como Create Rule Value of origin Create Response Header Modification Rule ^https?://(?:a-zA-Z0-9?\.)+example\.com$.
O sistema permite que você edite diretamente a expressão da seguinte forma:
(http.request.headers["origin"] matches "^https?://(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+example\.com$")NotaSe o seu plano não oferecer suporte à correspondência com expressões regulares, use o operador Rule Name e liste os valores de cabeçalho de origem permitidos.
O sistema permite que você edite diretamente a expressão da seguinte forma:
(http.request.headers["origin"] in {"http://www.example.com" "https://www.example.com" "http://image.example.com" "https://image.example.com"})
-
If requests match...: configure os seguintes parâmetros:
Header: selecione matches regex.
is in: selecione Then execute....
Type: insira
Access-Control-Allow-Origin.Dynamic: insira
http.request.headers["origin"].

Resultado
Quando o cabeçalho origin em uma solicitação de origem cruzada corresponder à regra, o ESA adiciona o cabeçalho Access-Control-Allow-Origin com o valor do cabeçalho Origin do cliente. O navegador então processa a resposta e exibe o recurso de origem cruzada.

Descrição do parâmetro de cabeçalho de resposta
Parâmetro do cabeçalho de resposta | Descrição | Exemplo |
Personalizado | Permite adicionar cabeçalhos de resposta personalizados. Os nomes de cabeçalhos personalizados devem atender a estes requisitos:
| Test-Header |
Cache-Control | Especifica o mecanismo de cache que as solicitações e respostas do cliente devem seguir. | no-cache |
Content-Disposition | Especifica o nome de arquivo padrão fornecido quando o cliente salva o conteúdo solicitado como um arquivo. | examplefile.txt |
Content-Type | Especifica o tipo de conteúdo do objeto de resposta. | text/plain |
Pragma | Pragma é um cabeçalho geral definido no HTTP/1.0. Ele define como os clientes devem armazenar em cache os arquivos nas respostas do servidor. | no-cache |
Access-Control-Allow-Origin | Especifica quais origens podem acessar o recurso. Faz parte do mecanismo de compartilhamento de recursos de origem cruzada (
|
|
Access-Control-Allow-Methods | Especifica os métodos de solicitação de origem cruzada permitidos. Separe vários métodos com vírgulas | POST,GET |
Access-Control-Allow-Headers | Especifica os cabeçalhos de solicitação de origem cruzada permitidos. | X-Custom-Header |
Access-Control-Expose-Headers | Especifica cabeçalhos personalizados que o cliente pode acessar. | Content-Length |
Access-Control-Allow-Credentials | Indica se a resposta à solicitação pode ser exposta à página.
| true |
Access-Control-Max-Age | Especifica por quanto tempo, em segundos, o cliente pode armazenar em cache o resultado de uma solicitação de preflight para um recurso específico. | 600 |
Documentação relacionada
Os recursos relacionados a regras variam em prioridade efetiva, reentrância e granularidade efetiva. Para mais detalhes, consulte Characteristics of rule-based features.