Añadido de 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, 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é con una política 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 las solicitudes de origen con una política.
Temas
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 entrue
cuando CloudFront determina que el lector es un dispositivo con el sistema operativo Android. -
CloudFront-Is-Desktop-Viewer
: se establece entrue
cuando CloudFront determina que el lector es un dispositivo de sobremesa. -
CloudFront-Is-IOS-Viewer
: se establece entrue
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 entrue
cuando CloudFront determina que el lector es un dispositivo móvil. -
CloudFront-Is-SmartTV-Viewer
: se establece entrue
cuando CloudFront determina que el lector es una TV inteligente. -
CloudFront-Is-Tablet-Viewer
: se establece entrue
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 de198.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
yCloudFront-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. -
CloudFront-Viewer-City
: contiene el nombre de la ciudad del espectador.
Cuando agrega los siguientes encabezados, CloudFront los aplica a todas las solicitudes excepto aquellas que se originan en la red de AWS:
-
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
).
nota
Es posible que CloudFront-Viewer-City
, CloudFront-Viewer-Metro-Code
y CloudFront-Viewer-Postal-Code
no estén disponibles para todas las direcciones IP. Algunas direcciones IP no pueden geolocalizarse con la suficiente especificidad como para obtener esa información.
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 agregar los siguientes encabezados para determinar el URI de la solicitud original del lector, los parámetros y valores de la cadena de consulta de la solicitud original, el protocolo, la versión, la huella JA3 y los detalles de la conexión TLS:
CloudFront-Error-Args
: contiene el URI de la solicitud original que se recibió del lector.CloudFront-Error-Uri
: contiene los parámetros y valores de la cadena de consulta de la solicitud original.-
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 JA3del 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
, el encabezado puede contener uno de los siguientes valores:handshake_information
-
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é. -