# Caché web

Se llama caché web a la caché que almacena documentos web (es decir, páginas, imágenes, etcétera) para reducir el ancho de banda consumido, la carga de los servidores y el retardo en la descarga. Un caché web almacena copias de los documentos que pasan por él, de forma que subsiguientes peticiones pueden ser respondidas por el propio caché, si se cumplen ciertas condiciones.

## Tipos de cachés web

Las cachés web pueden utilizarse de diversas formas. Las cachés de agente de usuario (User-Agent), como las presentes en los navegadores web, son cachés privados o cachés del lado del cliente, que funcionan solo para un único usuario. También existen paquetes específicos que se instalan como proxy local y actúan como caché además de realizar otras tareas, como por ejemplo Proxomitron.
Los intermediarios en la comunicación cliente-servidor también pueden implementar cachés compartidos (también llamadas proxy-cachés directos) que sirvan páginas a varios usuarios. Los proxy-cachés suelen ser usados por los proveedores de servicios de Internet (ISP), universidades y empresas para ahorrar ancho de banda. La intermediación de estos proxy-cachés difieren de la de los privados en que los clientes no necesitan ser explícitamente configurados para usarlos. Algunos paquetes que pueden ser usados como proxy-cachés son FortiCache de Fortinet, Squid, Microsoft ISA Server, BIG-IP de F5 y Blue Coat.
Las cachés pasarela (llamadas también proxy-cachés inversos o aceleradores web), o cachés del lado del servidor, funcionan a cargo del propio servidor original, de forma que los clientes no distinguen unos de otros. Puede hacerse funcionar conjuntamente varias cachés pasarela para implementar una Content Delivery Network (CDN), como es el caso de Akamai. Paquetes como Varnish Cache pueden usarse para este propósito.
Los intermediarios que funcionan como caché realizan con frecuencia otras tareas, tales como la autenticación de usuarios y el filtrado de contenidos. Varios cachés pueden ser coordinados entre sí con las ayuda de protocolos específicos tales como ICP o HTCP.

## Control de los cachés web

El protocolo HTTP define tres mecanismos básicos para controlar las cachés:
* Frescura, que permite que una respuesta sea usada sin comprobar de nuevo el servidor origen, y puede ser controlada tanto por el servidor como el cliente. Por ejemplo, la cabecera de respuesta Expires facilita una fecha en la que el documento caduca, y la directiva Cache-Control: max-age informa al caché del número de segundos durante los que la respuesta será válida.
* Validación, que puede usarse para comprobar si una respuesta cacheada sigue siendo buena tras caducar. Por ejemplo, si la respuesta tiene una cabecera Last-Modified, un caché puede hacer una petición condicional usando la cabecera If-Modified-Since para saber si la página cambió.
* Invalidación, que normalmente es un efecto secundario de otra petición que pasa por la caché. Por ejemplo, si la URL asociada con una respuesta cacheada es solicitada posteriormente mediante una petición POST, PUT o DELETE, la respuesta cacheada quedará invalidada.

## Consideraciones legales

Algunas personas se preocupan sobre si el cacheado de páginas web puede suponer una violación de derechos de autor. Por ejemplo, en 1998 la DMCA añadió leyes al código legal de Estados Unidos (17 U.S.C. § 512) que libera a los operadores de sistemas de la responsabilidad legal sobre los derechos de autor relacionados con el cacheo de documentos.

## Bibliografía

* Luotonen, Ari. Web Proxy Servers (Prentice Hall, 1997) ISBN 0-13-680612-0
* Nagaraj, S.V. Web Caching and Its Applications (Springer Science & Business Media, 2004). ISBN 1-40208-049-2
* Rabinovich, Michael y Oliver Spatschak, Web Caching and Replication (Addison Wesley, 2001). ISBN 0-201-61570-3
* Wessels, Duane. Web Caching (O'Reilly and Associates, 2001). ISBN 1-56592-536-X
* Datos: Q991293