Almacenamiento en caché en HTTP

 

 

 

Una descripción detallada de las opciones de almacenamiento en caché disponibles a través del protocolo HTTP

El almacenamiento en caché es una técnica que puede ayudar a que las conexiones de red sean más rápidas, porque cuanto menos cosas se necesiten transferir, mejor.

Muchos recursos pueden ser muy grandes y resultar muy costosos en términos de tiempo y también de costo real (en dispositivos móviles, por ejemplo) para recuperarlos.

Existen diferentes estrategias de almacenamiento en caché que están disponibles a través de HTTP y que utilizan los navegadores.

  • Sin almacenamiento en caché
  • El Expiresencabezado
  • GET condicional
    • Usando If-Modified-SinceyLast-Modified
    • Usando If-None-MatchyETag

Sin almacenamiento en caché

En primer lugar, el Cache-Controlencabezado puede indicarle al navegador que nunca use una versión en caché de un recurso sin verificar primero el valor ETag (más sobre esto más adelante), mediante el no-cachevalor:

 

Cache-Control: no-cache

Una no-storeopción más restrictiva le dice al navegador (y a todos los dispositivos de red intermediarios) que ni siquiera almacenen el recurso en su caché:

Cache-Control: no-store

Si Cache-Controltiene el max-agevalor , se utiliza para determinar la cantidad de segundos que este recurso es válido como caché:

Cache-Control: max-age=3600

El Expiresencabezado

Cuando se envía una solicitud HTTP, el navegador verifica si tiene una copia de esa página en la memoria caché, según la URL solicitada.

Si lo hay, verifica que la página esté actualizada .

Una página está nueva si el valor del encabezado de respuesta HTTPExpires es menor que la fecha y hora actual.

El encabezado Expires tiene este formato:

Expires: Sat, 01 Dec 2018 16:00:00 GMT

GET condicional

Existen distintas formas de realizar una obtención condicional. Todas se basan en el uso de los If-*encabezados de solicitud:

  • usando If-Modified-SinceyLast-Modified
  • usando If-None-MatchyETag

Usando If-Modified-SinceyLast-Modified

El navegador puede enviar una solicitud al servidor y, en lugar de simplemente pedir la página, agrega un If-Modified-Sinceencabezado , basado en el Last-Modifiedvalor del encabezado que obtuvo de la página almacenada en caché actualmente.

Esto le indica al servidor que solo devuelva un cuerpo de respuesta (el contenido de la página) si el recurso se ha actualizado desde esa fecha.

De lo contrario, el servidor devuelve una 304 Not Modifiedrespuesta.

Usando If-None-MatchyETag

El servidor web (dependiendo de la configuración, cómo se sirven las páginas, etc.) puede enviar un encabezado ETag .

Ese es el identificador de un recurso. Cada vez que el recurso cambia, por ejemplo, si se actualiza, la ETag también debería cambiar.

Es como una suma de comprobación.

El navegador envía un If-None-Matchencabezado que contiene uno (o más) valores ETag.

Si no hay coincidencia, el servidor devuelve la versión nueva del recurso; de lo contrario, una 304 Not Modifiedrespuesta.




Tal vez te puede interesar:

  1. Introducción a React
  2. Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
  3. Cómo cambiar el valor de un nodo DOM
  4. Cómo comprobar si un elemento DOM tiene una clase

Almacenamiento en caché en HTTP

Una descripción detallada de las opciones de almacenamiento en caché disponibles a través del protocolo HTTP

programar

es

2025-01-16

 

Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente

 

 

Update cookies preferences