Agregar encabezados de solicitudes de CloudFront - Amazon CloudFront

Agregar encabezados de solicitudes de CloudFront

Puede configurar CloudFront para añadir encabezados HTTP específicos a las solicitudes que CloudFront recibe de los lectores y reenvía a su función de origen o función perimetral. Los valores de estos encabezados HTTP se basan en las características del lector o de la solicitud del lector. Los encabezados proporcionan información sobre el tipo de dispositivo del lector, la dirección IP, la ubicación geográfica, el protocolo de solicitud (HTTP o HTTPS), la versión de HTTP, los detalles de conexión TLS y la huella digital JA3.

Con estos encabezados, su origen o su función periférica pueden recibir información sobre el lector sin necesidad de escribir su propio código para determinar esta información. Si su origen devuelve respuestas diferentes en función de la información de estos encabezados, puede incluirlas en la clave de caché para que CloudFront almacene en caché las respuestas por separado. Por ejemplo, su origen podría responder con contenido en un idioma específico según el país en el que se encuentre el lector, o con contenido adaptado a un tipo de dispositivo específico. Es posible que su origen también escriba estos encabezados en archivos de registro, que puede utilizar para determinar la información sobre dónde se encuentran sus lectores, en qué tipos de dispositivos se encuentran y mucho más.

Para incluir estos encabezados en la clave de caché, utilice una política de caché. Para obtener más información, consulte Control de la clave de caché y Descripción de la clave de caché.

Para recibir estos encabezados en el origen, pero sin incluirlos en la clave de caché, utilice una política de solicitud de origen. Para obtener más información, consulte Control de solicitudes de origen.

Encabezados para determinar el tipo de dispositivo del espectador

Puede agregar los siguientes encabezados para determinar el tipo de dispositivo del espectador. En función del valor del encabezado User-Agent, CloudFront establece el valor de estos encabezados en true o false. Si un dispositivo entra en más de una categoría, más de un valor puede ser true. Por ejemplo, en el caso de algunas tabletas, CloudFront establece tanto CloudFront-Is-Mobile-Viewer como CloudFront-Is-Tablet-Viewer en true.

  • CloudFront-Is-Android-Viewer: se establece en true cuando CloudFront determina que el lector es un dispositivo con el sistema operativo Android.

  • CloudFront-Is-Desktop-Viewer: se establece en true cuando CloudFront determina que el lector es un dispositivo de sobremesa.

  • CloudFront-Is-IOS-Viewer: se establece en true cuando CloudFront determina que el lector es un dispositivo con un sistema operativo móvil de Apple, como un iPhone, un iPod touch y algunos dispositivos iPad.

  • CloudFront-Is-Mobile-Viewer: se establece en true cuando CloudFront determina que el lector es un dispositivo móvil.

  • CloudFront-Is-SmartTV-Viewer: se establece en true cuando CloudFront determina que el lector es una TV inteligente.

  • CloudFront-Is-Tablet-Viewer: se establece en true cuando CloudFront determina que el lector es una tableta.

Encabezados para determinar la ubicación del espectador

Puede agregar los siguientes encabezados para determinar la ubicación del espectador. CloudFront determina los valores de estos encabezados en función de la dirección IP del espectador. Para los caracteres no ASCII en los valores de estos encabezados, CloudFront aplica la codificación de porcentaje de acuerdo con la sección 1.2 de RFC 3986.

  • CloudFront-Viewer-Address: contiene la dirección IP del espectador y el puerto de origen de la solicitud. Por ejemplo, un valor de encabezado de 198.51.100.10:46532 significa que la dirección IP del espectador es 198.51.100.10 y el puerto de origen de solicitud es 46532.

  • CloudFront-Viewer-ASN: contiene el número de sistema autónomo (ASN) del espectador.

    nota

    Se puede agregar CloudFront-Viewer-Address y CloudFront-Viewer-ASN en una política de solicitud de origen, pero no en una política de caché.

  • CloudFront-Viewer-Country: contiene el código de país de dos letras del país del espectador. Para obtener una lista de códigos de países, consulte ISO 3166-1 alpha-2.

Cuando agrega los siguientes encabezados, CloudFront los aplica a todas las solicitudes excepto aquellas que se originan en la red de AWS:

  • CloudFront-Viewer-City: contiene el nombre de la ciudad del espectador.

  • CloudFront-Viewer-Country-Name: contiene el nombre del país del espectador.

  • CloudFront-Viewer-Country-Region: contiene un código (hasta tres caracteres) que representa la región del espectador. La región es la subdivisión de primer nivel (la más amplia o menos específica) del código ISO 3166-2.

  • CloudFront-Viewer-Country-Region-Name: contiene el nombre de la región del espectador. La región es la subdivisión de primer nivel (la más amplia o menos específica) del código ISO 3166-2.

  • CloudFront-Viewer-Latitude: contiene la latitud aproximada del espectador.

  • CloudFront-Viewer-Longitude: contiene la longitud aproximada del espectador.

  • CloudFront-Viewer-Metro-Code: contiene el código del área metropolitana del espectador. Esto solo está presente cuando el lector se encuentra en los Estados Unidos.

  • CloudFront-Viewer-Postal-Code: contiene el código postal del espectador.

  • CloudFront-Viewer-Time-Zone contiene la zona horaria del espectador, en formato de base de datos de zona horaria de IANA (por ejemplo, America/Los_Angeles).

Encabezados para determinar la estructura de los encabezados del lector

Puede añadir los siguientes encabezados para ayudar a identificar al lector en función de los encabezados que envía. Por ejemplo, diferentes navegadores pueden enviar encabezados HTTP en un orden determinado. Si el navegador especificado en el encabezado User-Agent no coincide con el orden esperado de los encabezados de ese navegador, puede denegar la solicitud. Además, si el valor de CloudFront-Viewer-Header-Count no coincide con el número de encabezados de CloudFront-Viewer-Header-Order, puede denegar la solicitud.

  • CloudFront-Viewer-Header-Order: contiene los nombres de los encabezados del lector en el orden solicitado, separados por dos puntos. Por ejemplo: CloudFront-Viewer-Header-Order: Host:User-Agent:Accept:Accept-Encoding. Los encabezados que superen el límite de 7680 caracteres se truncan.

  • CloudFront-Viewer-Header-Count: contiene el número total de encabezados del lector.

Otros encabezados de CloudFront

Puede añadir los siguientes encabezados para determinar el protocolo, la versión, la huella digital de JA3 y los detalles de la conexión TLS del lector:

  • CloudFront-Forwarded-Proto: contiene el protocolo de la solicitud del espectador (HTTP o HTTPS).

  • CloudFront-Viewer-Http-Version: contiene la versión HTTP de la solicitud del espectador.

  • CloudFront-Viewer-JA3-Fingerprint: contiene la huella digital JA3 del lector. La huella digital JA3 puede ayudarle a determinar si la solicitud proviene de un cliente conocido, si se trata de malware o un bot malintencionado, o es una aplicación esperada (incluida en la lista de permitidos). Este encabezado se basa en el paquete SSL/TLS Client Hello del lector y solo está presente para las solicitudes HTTPS.

    nota

    Puede añadir CloudFront-Viewer-JA3-Fingerprint en una política de solicitud de origen, pero no en una política de caché.

  • CloudFront-Viewer-TLS: contiene la versión de SSL/TLS, el cifrado e información acerca del protocolo de enlace SSL/TLS que se ha utilizado para la conexión entre el lector y CloudFront. El valor del encabezado tiene el siguiente formato:

    SSL/TLS_version:cipher:handshake_information

    En handshake_information, el encabezado puede contener uno de los siguientes valores:

    • fullHandshake: se aceptó correctamente el protocolo de enlace para la sesión de SSL/TLS.

    • sessionResumed: se reanudó una sesión SSL/TLS anterior.

    • connectionReused: se ha reutilizado una conexión SSL/TLS anterior.

    A continuación, se muestran algunos valores de ejemplo para este encabezado:

    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 obtener la lista completa de las posibles versiones y cifrados de SSL/TLS que pueden estar en este valor de encabezado, consulte Protocolos y cifrados admitidos entre lectores y CloudFront.

    nota

    Puede añadir CloudFront-Viewer-TLS en una política de solicitud de origen, pero no en una política de caché.