Almacenamiento en caché de contenido en función de cookies - Amazon CloudFront

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Almacenamiento en caché de contenido en función de cookies

De forma predeterminada, CloudFront no tiene en cuenta las cookies al procesar las solicitudes y respuestas ni al almacenar en caché los objetos en ubicaciones periféricas. Si CloudFront recibe dos solicitudes idénticas, excepto la que aparece en el Cookie encabezado, de forma predeterminada, CloudFront trata las solicitudes como idénticas y devuelve el mismo objeto para ambas solicitudes.

Puedes configurarlo para que reenvíe CloudFront a tu origen algunas o todas las cookies de las solicitudes de los espectadores y para que almacene en caché distintas versiones de tus objetos en función de los valores de las cookies que reenvía. Al hacerlo, CloudFront utiliza algunas o todas las cookies de las solicitudes de los espectadores (las que estén configuradas para reenviar) para identificar de forma exclusiva un objeto de la memoria caché.

Supongamos que las solicitudes de locations.html contienen una cookie country con un valor de uk o fr. Cuando se configura CloudFront para almacenar en caché los objetos en función del valor de la country cookie, CloudFront reenvía las solicitudes locations.html al origen e incluye la cookie y su valor. country Tu origen devuelve locations.html el objeto y lo guarda en CloudFront caché una vez para las solicitudes en las que está el valor de la country cookie uk y otra vez para las solicitudes en las que está el valor. fr

importante

Amazon S3 y algunos servidores HTTP no procesan cookies. No lo configures CloudFront para reenviar las cookies a un origen que no procese las cookies o que no varíe su respuesta en función de las cookies. Esto puede CloudFront provocar que se reenvíen más solicitudes al origen para el mismo objeto, lo que ralentiza el rendimiento y aumenta la carga en el origen. Si, teniendo en cuenta el ejemplo anterior, tu origen no procesa la country cookie o siempre devuelve la misma versión de locations.html to, CloudFront independientemente del valor de la country cookie, no lo configures CloudFront para reenviar esa cookie.

Por el contrario, si tu origen personalizado depende de una cookie en particular o envía respuestas diferentes en función de una cookie, asegúrate de CloudFront configurarlo para reenviar esa cookie al origen. De lo contrario, CloudFront elimina la cookie antes de reenviar la solicitud a su origen.

Para configurar el reenvío de cookies, actualice el comportamiento de la caché de su distribución. Para obtener más información acerca de los comportamientos de caché, consulte Configuración del comportamiento de la caché y, en particular, las secciones Reenvío de cookies y Cookies de lista de permitidos.

Puede configurar cada comportamiento de la caché para realizar una de las siguientes acciones:

  • Reenvía todas las cookies a tu origen: CloudFront incluye todas las cookies que envía el usuario cuando reenvía las solicitudes al origen. Cuando tu origen devuelve una respuesta, la guarda en CloudFront caché con los nombres y valores de las cookies de la solicitud del espectador. Si la respuesta de origen incluye Set-Cookie encabezados, los CloudFront devuelve al espectador con el objeto solicitado. CloudFront también almacena en caché Set-Cookie los encabezados con el objeto devuelto desde el origen y los envía a los espectadores en todas las Set-Cookie visitas a la memoria caché.

  • Reenvía el conjunto de cookies que tú especifiques: CloudFront elimina las cookies que el espectador envíe y que no estén en la lista de cookies permitidas antes de reenviar una solicitud al origen. CloudFront guarda en caché la respuesta con los nombres y valores de las cookies que aparecen en la solicitud del espectador. Si la respuesta de origen incluye Set-Cookie encabezados, los CloudFront devuelve al espectador con el objeto solicitado. CloudFront también almacena en caché Set-Cookie los encabezados con el objeto devuelto desde el origen y los envía a los espectadores en todas las Set-Cookie visitas a la memoria caché.

    Para obtener información acerca de la especificación de comodines en nombres de cookies, consulte Cookies de lista de permitidos.

    Para consultar la cuota actual de la cantidad de nombres de cookies que puede reenviar para cada comportamiento de la caché o para solicitar una ampliación de la cuota, consulte Cuotas en cadenas de consulta (configuración de caché heredada).

  • No reenvíes las cookies a tu origen: CloudFront no almacena en caché tus objetos en función de las cookies enviadas por el espectador. Además, CloudFront elimina las cookies antes de reenviar las solicitudes a su origen y elimina los encabezados de Set-Cookie de las respuestas antes de devolver las respuestas a sus espectadores.

Tenga en cuenta lo siguiente acerca de especificar las cookies que desea reenviar:

Logs de acceso

Si está configurado CloudFront para registrar las solicitudes y las cookies, CloudFront registra todas las cookies y todos sus atributos, incluso si configura para CloudFront no reenviar las cookies a su origen o si lo configura CloudFront para reenviar solo cookies específicas. Para obtener más información sobre el CloudFront registro, consulteConfiguración y uso de registros estándar (registros de acceso).

Sensibilidad de mayúsculas y minúsculas

Los nombres y valores de las cookies distinguen entre mayúsculas y minúsculas. Por ejemplo, si CloudFront está configurado para reenviar todas las cookies y dos solicitudes de visualización del mismo objeto tienen cookies idénticas excepto mayúsculas y minúsculas, CloudFront almacena el objeto en caché dos veces.

CloudFront Ordena las cookies

Si CloudFront está configurado para reenviar las cookies (todas o un subconjunto), las CloudFront clasifica en orden natural por nombre de cookie antes de reenviar la solicitud a su origen.

If-Modified-Since y If-None-Match

If-Modified-Sincey las solicitudes If-None-Match condicionales no se admiten cuando CloudFront está configurado para reenviar las cookies (todas o un subconjunto).

Formato necesario de pares de nombre-valor estándar

CloudFront reenvía el encabezado de una cookie solo si el valor se ajusta al formato de par nombre-valor estándar, por ejemplo: "Cookie: cookie1=value1; cookie2=value2"

Deshabilitar el almacenamiento en caché de los encabezados Set-Cookie

Si CloudFront está configurado para reenviar las cookies al origen (ya sean todas las cookies o cookies específicas), también almacena en caché Set-Cookie los encabezados recibidos en la respuesta de origen. CloudFront incluye estos Set-Cookie encabezados en su respuesta al espectador original y también los incluye en las respuestas posteriores que se muestran desde la memoria caché. CloudFront

Si quieres recibir cookies en tu origen pero no deseas CloudFront almacenar en caché Set-Cookie los encabezados de las respuestas de tu origen, configura tu origen para que añada un Cache-Control encabezado con una no-cache directiva que se especifique Set-Cookie como nombre de campo. Por ejemplo: Cache-Control: no-cache="Set-Cookie". Para obtener más información, consulte Directivas de respuesta de control de caché en el protocolo de transferencia de hipertexto (HTTP/1.1): almacenamiento en caché estándar.

Longitud máxima de los nombres de las cookies

Si lo configuras CloudFront para reenviar cookies específicas a tu origen, el número total de bytes de todos los nombres de cookies que configures CloudFront para reenviar no puede superar los 512 menos el número de cookies que estés reenviando. Por ejemplo, si CloudFront configuras reenviar 10 cookies a tu origen, la longitud combinada de los nombres de las 10 cookies no puede superar los 502 bytes (512 — 10).

Si se configura CloudFront para reenviar todas las cookies a su origen, no importa la longitud de los nombres de las cookies.

Para obtener información sobre el uso de la CloudFront consola para actualizar una distribución y CloudFront reenviar las cookies al origen, consulteActualización de una distribución. Para obtener información sobre el uso de la CloudFront API para actualizar una distribución, consulta UpdateDistributionla referencia de la CloudFront API de Amazon.