Configurações de cabeçalho HTTP (solicitações de origem cruzada)
Cabeçalhos HTTP são parte de uma solicitação HTTP ou mensagem de resposta que definem os parâmetros operacionais de uma transação HTTP.
O compartilhamento de recursos de origem cruzada (CORS) é um mecanismo que permite o acesso de origem cruzada. Quando o site A acessa recursos no site B, uma solicitação de origem cruzada é enviada. Se o site B não permitir que o site A acesse os recursos, ocorrerá um problema entre domínios. Nesse caso, você pode configurar as configurações do cabeçalho HTTP e adicionar cabeçalhos personalizados nas mensagens de resposta retornadas ao solicitante para implementar funções como CORS.
Precauções
A configuração do cabeçalho HTTP é específica do nome de domínio. Quando uma nova configuração entra em vigor, as mensagens de resposta serão adicionadas aos cabeçalhos usados para quaisquer recursos dentro de todo o domínio. No entanto, a configuração de cabeçalho HTTP afeta apenas o comportamento de resposta dos clientes (navegadores). Eles não afetam o comportamento do cache de nós CDN.
Cabeçalhos de resposta suportados
A CDN da Huawei Cloud permite que você personalize os seguintes cabeçalhos de resposta HTTP diferentes:
- Content-Disposition
O cabeçalho Content-Disposition pode iniciar um download no lado do cliente e especificar o nome do arquivo a ser baixado.
Quando um servidor envia um arquivo para um navegador, desde que o formato do arquivo seja suportado (por exemplo, TXT ou JPG), o arquivo é aberto usando o navegador por padrão. Se o arquivo precisar ser tratado como um anexo e salvo com um nome de arquivo específico, você poderá usar o campo de cabeçalho Content-Disposition para especificar esse requisito.
Se você usar um bucket do OBS criado após 1o de janeiro de 2022 como o servidor de origem e quiser ativar a visualização on-line, defina Content-Disposition como inline. Para obter detalhes, consulte Como faço para visualizar objetos no OBS através de um navegador?
- Content-Language
O cabeçalho Content-Language especifica o idioma preferido ou a combinação de idiomas do navegador. O conteúdo pode ser personalizado para diferentes usuários.
- Access-Control-Allow-Origin
O cabeçalho Access-Control-Allow-Origin carrega os nomes de domínio permitidos para o CORS após a autenticação do servidor. Para uma simples solicitação CORS, o navegador determina se o conteúdo do recurso solicitado deve ser retornado ao cliente com base nesse cabeçalho de mensagem. Para uma solicitação de pré-verificação, o navegador determina se deve iniciar uma solicitação CORS real para o servidor com base nesse cabeçalho da mensagem.
Para evitar erros entre domínios causados pelo cache do navegador, limpe o cache do navegador depois de configurar o Access-Control-Allow-Origin.
- Access-Control-Allow-Methods
O cabeçalho Access-Control-Allow-Methods carrega os métodos que são permitidos para o acesso CORS após a autenticação do servidor. Para uma simples solicitação CORS, o navegador determina se o conteúdo do recurso solicitado deve ser retornado ao cliente com base nesse cabeçalho de mensagem. Para uma solicitação de pré-verificação, o navegador determina se deve iniciar uma solicitação CORS real para o servidor com base nesse cabeçalho da mensagem.
- Access-Control-Max-Age
O cabeçalho Access-Control-Max-Age determina por quanto tempo os resultados de pré-verificação para solicitações CORS permitidas pelo servidor podem ser armazenados em cache. O navegador determina a idade máxima do cache para os resultados da solicitação de pré-verificação com base nesse cabeçalho da mensagem. Desde que o período definido por esse cabeçalho não tenha expirado, o navegador pode determinar se deve iniciar uma solicitação CORS ao servidor com base nos resultados. Uma vez que esse período expira, o navegador precisa enviar outra solicitação de pré-verificação para o servidor.
- Access-Control-Expose-Headers
Access-Control-Expose-Headers especifica os cabeçalhos de resposta que o navegador pode expor ao cliente. Você pode usar esse campo para definir os cabeçalhos de resposta visíveis para o cliente. Os seguintes cabeçalhos de resposta são visíveis para o cliente por padrão: Cache-Control, Content-Language, Content-Type, Expires, Last-Modified e Pragma.
- Personalizado
Se os cabeçalhos de resposta anteriores não puderem atender às suas necessidades, você poderá criar cabeçalhos de resposta. Um cabeçalho de resposta personalizado pode conter de 1 a 100 caracteres, começando com uma letra e consistindo em letras, dígitos e hífens (-).
Procedimento
- Efetue login no console de CDN.
- No painel de navegação, escolha .
- Na lista de domínios, clique no nome de domínio de destino ou clique em Configure na coluna Operation.
- Clique na guia Advanced Settings.
- Na área HTTP Header, clique em Edit. A caixa de diálogo Configure HTTP Header é exibida.
- Clique em Add e selecione uma operação de cabeçalho de resposta na lista suspensa.
Operação de cabeçalho de resposta
Descrição
Definir
- Se o cabeçalho já existir na resposta, o valor do cabeçalho configurado substituirá o original.
- Se o cabeçalho não existir na resposta, o cabeçalho será adicionado à resposta.
Excluir
O cabeçalho será excluído da resposta.
- Alguns cabeçalhos não podem ser definidos ou excluídos. Para mais detalhes, consulte Restrições.
- Você pode adicionar até 10 configurações de cabeçalho de resposta HTTP.
- Defina o parâmetro e o valor do cabeçalho.
Parâmetro
Descrição
Valor de exemplo
Content-disposition
Inicia um download no lado do cliente e especifica o nome do arquivo a ser baixado.
Requisitos de valor: para uma configuração típica, veja o exemplo à direita.
attachment;filename=FileName.xls
Content-Language
Especifica o idioma da página de resposta do cliente.
Requisitos de valor: para uma configuração típica, veja o exemplo à direita.
zh-CN
en-US
Access-Control-Allow-Origin
Especifica os URLs de domínio estrangeiro (origens de solicitação) que têm permissão para acessar o recurso no compartilhamento de recursos de origem cruzada (CORS).
Requisitos de valor:
- digite até 256 caracteres para um URL.
- Um URL deve começar com http:// ou https://.
- Se isso for definido como *, não serão os permitidos URLs após o curinga (*).
Exemplo 1:
https://www.example.com
Exemplo 2:
*
NOTA:Nomes de domínio curinga não são suportados.
Access-Control-Allow-Methods
Especifica os métodos de solicitação HTTP que podem ser usados em uma solicitação CORS.
Requisitos de valor: vários métodos podem ser configurados ao mesmo tempo. Separe-os com vírgulas (,).
GET, POST, HEAD
Access-Control-Max-Age
Especifica por quanto tempo armazenar em cache os resultados de pré-verificação de solicitações CORS em recursos específicos.
Requisitos de valor: este valor é expresso em segundos. O intervalo de valores é 1-1000000000.
86400
Access-Control-Expose-Headers
Especifica as informações do cabeçalho de resposta visíveis para o cliente de uma solicitação CORS.
Requisitos de valor: vários cabeçalhos podem ser configurados ao mesmo tempo. Separe-os com vírgulas (,).
Content-Length, Content-Encoding
Personalizado
Especifica o cabeçalho de resposta personalizado para uma solicitação CORS.
Requisitos de valor: digite até 256 caracteres, que podem conter letras, dígitos, espaços e caracteres especiais (.-_*#! %&+|^-'"/:;,=@?).
x-testcdn
- Clique em OK.
Restrições
- Se o seu nome de domínio tiver configurações especiais, Content-Type, Cache-Control e Expires não poderão ser configurados.
- Os seguintes cabeçalhos de resposta podem ser modificados, mas não podem ser excluídos.
Content-Base
Content-Disposition
Server
Content-Language
- CDN não suporta os seguintes cabeçalhos de resposta:
A_Dynamic
If-None-Match
Sec-WebSocket-Origin
X-Forward-Peer
Accept-Ranges
If-Range
Sec-WebSocket-Protocol
X-Forward-Type
Age
Keep-Alive
Sec-WebSocket-Version
X-Forward-Uri
Allow
Key
Set-Cookie
X-Forwarded-For
Authentication-Info
Last-Modified
Tcp-Retrans
X-IP-Region
Authorization
Link
Title
X-IP-Region-CN
X-Forward-Measured
Location
Transfer-Encoding
X-Ip-Blackwhite-List
Cdn-Qos
Max-Forwards
Upgrade
X-Local-Ip
Cdn-Server-Ip
Meter
Vary
X-Log-Url
Cdn-Src-Ip
Mime-Version
Via
X-MAA-Alias
Conf-Err-Host
Negotiate
WWW-Authenticate
X-MAA-Auth
Conf-File
Origin
Warning
X-Max-Conns
Conf-File-List
Partition-Block-Size
Ws-Hdr
X-Mem-Url
Conf-Option
Pragma
WsTag
X-Mgr-Traffic
Conf-Other
Proxy-Authenticate
X-Accelerator-Vary
X-Miss-Rate-Limit
Connection
Proxy-Authentication-Info
X-Appa
X-Miss-Times-Limit
Content-Encoding
Proxy-Authorization
X-Appa-Origin
X-No-Referer
Content-Length
Proxy-Connection
X-Black-List
X-Query-Key
Content-Location
Proxy-Support
X-Bwctrl-Limit
X-Rate-Limit
Content-MD5
Public
X-Bwctrl-Para
X-Refresh-Pattern
Content-Range
Purge-Domain
X-Cache
X-Request-Id
Sec-WebSocket-Nonce
Purge-Extra
X-Cache-2
X-Request-Uri
Date
Range
X-Cache-Lookup
X-Request-Url
Dynamic
Request-Range
X-Cacheable
X-Resp-Time
ETag
Retry-After
X-Cdn-Src-Port
X-Rewrite-Url
Error
Sec-WebSocket-Accept
X-Client-Ip
X-Squid-Error
Expect
Sec-WebSocket-Draft
X-DNS-Time
X-Times-Limit
If-Modified-Since
Sec-WebSocket-Extensions
X-Denyattack-Dynconf
X-Url-Blackwhite-List
From
Sec-WebSocket-Key
X-Error-Status
X-Via-CDN
Front-End-Https
Sec-WebSocket-Key1
X-Error-URL
X-White-List
Host
Sec-WebSocket-Key2
X-Forward-Host
-
If-Match
Sec-WebSocket-Location
X-Forward-Ip
-