La caché, la memoria de acceso rápido de un ordenador en donde se guardan temporalmente los datos que han sido recientemente procesados, es un término que escuchamos día a día, cuando alguien o alguna página nos recomienda que borremos la caché. Pero, ¿cómo funciona una caché y el flujo de petición http?

Un sistema de caché, como lo es Transparent CDN, puede aportarnos infinidad de ventajas a nuestro sitio web, entre los que podemos destacar, reducción de los tiempos de la carga de la páginas, absorción de grandes volúmenes de tráfico, mejoras de la seguridad del portal o en ocasiones hasta una reducción de costes en infraestructura. Y a pesar de estas ventajas, todavía hay muchos por ahí realizando el siguiente proceso:



En la imagen que podemos ver, se ve el flujo de una petición web de un objeto http desde un cliente convencional al servidor web (sin pasar por ninguna caché) que alberga el site www.transparentcdn.com No parece muy complicado, ¿no? Vamos a analizarlo en más detalle.

En primer lugar, y por simplificar el tema al máximo, el cliente envía una solicitud http pidiendo, con el método GET, que le devuelva el objeto “ / ”(este objeto “barra” es la portada principal del site.

Junto con la petición GET el cliente envía una serie de cabeceras, todas opcionales a excepción de la cabecera Host. La cabecera Host se utiliza para que los servidores configurados en modo multidominio sepan cual de todos los sitios web que tienen configurados tiene que servirle al cliente. En caso de no estar ésta cabecera, el servidor interpretará que debe servir el sitio web que tenga configurado por defecto.

En la respuesta a esta solicitud, el servidor web además del contenido propiamente dicho, devuelve una serie de cabeceras, alguna de ellas bastante importantes para el tema que nos ocupa. En la primera línea vemos que el servidor responde con un “HTTP/1.1 200 OK”, aquí el servidor le dice al cliente que el recurso que solicitaba ha sido encontrado y servido con éxito mediante el código 200.

En segundo lugar, vemos la cabecera Cache-Control, que puede configurarse en el servidor web, bien a nivel de web server o bien a nivel de código y lo que hace es decirle al navegador del cliente (y todas las cachés por las que pasa las request) que ese objeto debe actualizarse cada 2592000 segundos en este caso, o lo que es lo mismo, ese objeto puede guardarse en la caché del navegador durante 30 días.

Ahora bien, ¿cómo sería esta petición si metemos una caché como Transparent CDN por medio? Vamos a verlo: –


Parece que la cosa se complica un poco pero en realidad es más sencillo de lo que parece.

En primer lugar, y este paso no cambia, el cliente o navegador web hace una petición http, pero en este caso en lugar de ir directamente contra el servidor web va a pasar por una caché como Transparent CDN. Decir que para el cliente web este paso es totalmente transparente ya que en realidad él no sabe si la petición se la hace a un servidor web directamente o a una caché.

Volviendo al tema, la petición es recibida por el sistema de cachés y una vez aquí la caché comprueba si el objeto que pide el cliente lo tiene o no disponible en la caché. Si lo tiene, se lo devuelve sin necesidad de pedirlo al servidor web, si no, como es el caso ilustrado, va a pedirlo al servidor web retransmitiendo exactamente la misma request que el cliente le ha mandado (paso 2).

En este momento, la request llega al servidor web, quien la procesa y le manda el contenido solicitado a la caché, junto con las cabeceras de la respuesta (paso 3). La caché acaba de recibir el contenido procedente del servidor web y aquí ahora es donde se hace la magia del web caching, ya que inspeccionando las cabeceras de esa respuesta http, la caché se da cuenta que el servidor mediante la cabecera Cache-control le está diciendo que guarde el objeto por periodo de 2592000 segundo (30 días) de manera que todas las peticiones que lleguen a la caché solicitando ese objeto durante ese periodo de tiempo, no tendrán que pedirse al servidor web y serán servidas desde la caché.

Por último, en el paso cuatro, la caché le envía el contenido al cliente quien lo interpreta y lo visualiza. De esta manera hemos mejorado la velocidad de carga de las páginas, descargado de trabajo al servidor web, aplicando las ventajas mencionadas anteriormente, mejorando la seguridad del portal y absorbiendo grandes volúmenes de tráfico.

 

Be faster my friend!