Adicionar cabeçalhos de solicitação do CloudFront - Amazon CloudFront

Adicionar cabeçalhos de solicitação do CloudFront

É possível configurar o CloudFront para adicionar cabeçalhos HTTP específicos às solicitações que o CloudFront recebe dos visualizadores e encaminha para sua origem ou função de borda. Os valores desses cabeçalhos HTTP são baseados nas características do visualizador ou da solicitação do visualizador. Os cabeçalhos fornecem informações sobre o tipo de dispositivo, o endereço IP, a localização geográfica, o protocolo de solicitação (HTTP ou HTTPS), a versão HTTP, os detalhes da conexão TLS, a impressão digital JA3 e a impressão JA4 do visualizador.

Com esses cabeçalhos, sua origem ou função de borda pode receber informações sobre o visualizador sem a necessidade de escrever seu próprio código para determiná-las. Se a origem retornar respostas diferentes com base nas informações nesses cabeçalhos, você poderá incluí-las na chave de cache para que o CloudFront armazene as respostas em cache separadamente. Por exemplo, sua origem pode responder com conteúdo em um idioma específico com base no país em que o visualizador está ou com conteúdo personalizado para um tipo de dispositivo específico. Sua origem também pode gravar esses cabeçalhos em arquivos de log, que você pode usar para determinar informações sobre onde seus visualizadores estão, em quais tipos de dispositivo eles estão e muito mais.

Para incluir cabeçalhos na chave de cache, use uma política de cache. Para obter mais informações, consulte Controlar a chave de cache com uma política e Noções básicas sobre a chave de cache.

Para receber esses cabeçalhos em sua origem, mas não incluí-los na chave de cache, use uma política de solicitação de origem. Para ter mais informações, consulte Controlar as solicitações de origem com uma política.

Cabeçalhos para determinar o tipo de dispositivo do visualizador

Você pode adicionar os cabeçalhos a seguir para determinar o tipo de dispositivo do visualizador. Com base no valor do cabeçalho User-Agent, o CloudFront define o valor desses cabeçalhos como true ou false. Se o dispositivo se encaixar em mais de uma categoria, mais de um valor poderá ser true. Por exemplo, para alguns tablets, o CloudFront pode definir tanto CloudFront-Is-Mobile-Viewer quanto CloudFront-Is-Tablet-Viewer como true.

  • CloudFront-Is-Android-Viewer: definido como true quando o CloudFront determina que o visualizador é um dispositivo com o sistema operacional Android.

  • CloudFront-Is-Desktop-Viewer: definido como true quando o CloudFront determina que o visualizador é um dispositivo desktop.

  • CloudFront-Is-IOS-Viewer: definido como true quando o CloudFront determina que o visualizador é um dispositivo com um sistema operacional móvel Apple, como iPhone, iPod touch e alguns dispositivos iPad.

  • CloudFront-Is-Mobile-Viewer: definido como true quando o CloudFront determina que o visualizador é um dispositivo móvel.

  • CloudFront-Is-SmartTV-Viewer: definido como true quando o CloudFront determina que o visualizador é uma Smart TV.

  • CloudFront-Is-Tablet-Viewer: definido como true quando o CloudFront determina que o visualizador é um tablet.

Cabeçalhos para determinar a localização do visualizador

Você pode adicionar os cabeçalhos a seguir para determinar a localização do visualizador. O CloudFront determina os valores para esses cabeçalhos com base no endereço IP do visualizador. Para caracteres não ASCII nos valores desses cabeçalhos, o CloudFront codifica o caractere de porcentagem de acordo com a seção 1.2 da RFC 3986.

  • CloudFront-Viewer-Address: contém o endereço IP do visualizador e a porta de origem da solicitação. Por exemplo, um valor de cabeçalho de 198.51.100.10:46532 significa que o endereço IP do visualizador é 198.51.100.10 e a porta da fonte da solicitação é 46532.

  • CloudFront-Viewer-ASN: contém o número de sistema autônomo (ASN) do visualizador.

    nota

    É possível adicionar CloudFront-Viewer-Address e CloudFront-Viewer-ASN a uma política de solicitação de origem, mas não a uma política de cache.

  • CloudFront-Viewer-Country: contém o código de duas letras do país do visualizador. Para obter uma lista de códigos de país, consulte ISO 3166-1 alfa-2.

  • CloudFront-Viewer-City: contém o nome da cidade do visualizador.

Quando você adiciona os cabeçalhos a seguir, o CloudFront os aplica a todas as solicitações exceto aquelas que se originam da rede da AWS:

  • CloudFront-Viewer-Country-Name: contém o nome do país do visualizador.

  • CloudFront-Viewer-Country-Region: contém um código (de até três caracteres) que representa a região do visualizador. A região é a subdivisão de primeiro nível (a mais ampla ou menos específica) do código ISO 3166-2.

  • CloudFront-Viewer-Country-Region-Name: contém o nome da região do visualizador. A região é a subdivisão de primeiro nível (a mais ampla ou menos específica) do código ISO 3166-2.

  • CloudFront-Viewer-Latitude: contém a latitude aproximada do visualizador.

  • CloudFront-Viewer-Longitude: contém a longitude aproximada do visualizador.

  • CloudFront-Viewer-Metro-Code: contém o código metro do visualizador. Esse código só está presente quando o visualizador está nos Estados Unidos.

  • CloudFront-Viewer-Postal-Code: contém o CEP do visualizador.

  • CloudFront-Viewer-Time-Zone contém o fuso horário do visualizador, no formato de banco de dados de fuso horário da IANA (por exemplo, America/Los_Angeles).

nota

CloudFront-Viewer-City, CloudFront-Viewer-Metro-Code e CloudFront-Viewer-Postal-Code podem não estar disponíveis para todos os endereços IP. Alguns endereços IP não podem ser geolocalizados com especificidade suficiente para receber essas informações.

Cabeçalhos para determinar a estrutura de cabeçalho do visualizador

Agora você pode adicionar os cabeçalhos a seguir para ajudar a identificar o visualizador com base nos cabeçalhos que ele envia. Por exemplo, navegadores diferentes podem enviar cabeçalhos HTTP em determinada ordem. Se o navegador especificado no cabeçalho User-Agent não corresponder à ordem de cabeçalho esperada desse navegador, você poderá negar a solicitação. Além disso, se o valor CloudFront-Viewer-Header-Count não corresponder ao número de cabeçalhos em CloudFront-Viewer-Header-Order, você poderá negar a solicitação.

  • CloudFront-Viewer-Header-Order: contém os nomes dos cabeçalhos do visualizador na ordem solicitada, separados por um sinal de dois pontos. Por exemplo: CloudFront-Viewer-Header-Order: Host:User-Agent:Accept:Accept-Encoding. Os cabeçalhos além do limite de caracteres de 7.680 são truncados.

  • CloudFront-Viewer-Header-Count: contém o número total de cabeçalhos do visualizador.

Outros cabeçalhos do CloudFront

É possível adicionar os seguintes cabeçalhos para determinar o URI, os parâmetros da string de consulta, bem como os valores, o protocolo, a versão, a impressão digital JA3 e os detalhes da conexão TLS da solicitação original do visualizador:

  • CloudFront-Error-Args: contém o URI da solicitação original recebida do visualizador.

  • CloudFront-Error-Uri: contém os parâmetros e os valores da string de consulta da solicitação original.

  • CloudFront-Forwarded-Proto: contém o protocolo da solicitação do visualizador (HTTP ou HTTPS).

  • CloudFront-Viewer-Http-Version: contém a versão HTTP da solicitação do visualizador.

  • CloudFront-Viewer-JA3-Fingerprint: contém a impressão digital JA3 do visualizador. A impressão digital JA3 pode ajudar você a determinar se a solicitação vem de um cliente conhecido, se é um malware ou um bot malicioso, ou se é uma aplicação esperada (na lista de permissões). Esse cabeçalho depende do pacote Client Hello SSL/TLS do visualizador e está presente apenas em solicitações HTTPS.

    nota

    Você pode adicionar CloudFront-Viewer-JA3-Fingerprint em uma política de solicitação de origem, mas não em uma política de cache.

  • CloudFront-Viewer-TLS: contém a versão SSL/TLS da cifra e as informações sobre o handshake de SSL/TLS que foi usado para a conexão entre o visualizador e o CloudFront. O valor do cabeçalho está no seguinte formato:

    SSL/TLS_version:cipher:handshake_information

    Para handshake_information, o cabeçalho contém um dos seguintes valores:

    • fullHandshake: foi realizado um handshake completo para a sessão SSL/TLS.

    • sessionResumed: uma sessão anterior de SSL/TLS foi retomada.

    • connectionReused: uma conexão SSL/TLS anterior foi reutilizada.

    Veja a seguir alguns exemplos de valores para esse cabeçalho:

    TLSv1.3:TLS_AES_128_GCM_SHA256:sessionResumed
    TLSv1.2:ECDHE-ECDSA-AES128-GCM-SHA256:connectionReused
    TLSv1.1:ECDHE-RSA-AES128-SHA256:fullHandshake
    TLSv1:ECDHE-RSA-AES256-SHA:fullHandshake

    Para obter a lista completa de possíveis versões e criptografias SSL/TLS que podem estar nesse valor de cabeçalho, consulte Protocolos e cifras compatíveis entre visualizadores e o CloudFront.

    nota

    Você pode adicionar CloudFront-Viewer-TLS em uma política de solicitação de origem, mas não em uma política de cache.