HTTP: almacenamiento en caché
HTTP se utiliza normalmente para sistemas de información distribuidos, donde el rendimiento se puede mejorar mediante el uso de cachés de respuesta. El protocolo HTTP / 1.1 incluye una serie de elementos destinados a que el almacenamiento en caché funcione.
El objetivo del almacenamiento en caché en HTTP / 1.1 es eliminar la necesidad de enviar solicitudes en muchos casos y eliminar la necesidad de enviar respuestas completas en muchos otros casos.
Los mecanismos básicos de caché en HTTP / 1.1 son directivas implícitas para cachés donde el servidor especifica los tiempos de expiración y los validadores. Usamos elCache-Control encabezado para este propósito.
los Cache-ControlEl encabezado permite que un cliente o servidor transmita una variedad de directivas en solicitudes o respuestas. Estas directivas normalmente anulan los algoritmos de almacenamiento en caché predeterminados. Las directivas de almacenamiento en caché se especifican en una lista separada por comas. Por ejemplo:
Cache-control: no-cache
El cliente puede utilizar las siguientes directivas de solicitud de caché en su solicitud HTTP:
SN | Descripción y directiva de solicitud de caché |
---|---|
1 | no-cache Un caché no debe utilizar la respuesta para satisfacer una solicitud posterior sin una revalidación exitosa con el servidor de origen. |
2 | no-store La caché no debe almacenar nada sobre la solicitud del cliente o la respuesta del servidor. |
3 | max-age = seconds Indica que el cliente está dispuesto a aceptar una respuesta cuya antigüedad no supere el tiempo especificado en segundos. |
4 | max-stale [ = seconds ] Indica que el cliente está dispuesto a aceptar una respuesta que ha excedido su tiempo de vencimiento. Si se dan segundos, no debe caducar más de ese tiempo. |
5 | min-fresh = seconds Indica que el cliente está dispuesto a aceptar una respuesta cuya vida útil de actualización no sea inferior a su antigüedad actual más el tiempo especificado en segundos. |
6 | no-transform No convierte la entidad-cuerpo. |
7 | only-if-cached No recupera datos nuevos. El caché puede enviar un documento solo si está en el caché y no debe contactar al servidor de origen para ver si existe una copia más nueva. |
El servidor puede utilizar las siguientes directivas de respuesta de caché en su respuesta HTTP:
SN | Directiva y descripción de respuesta de caché |
---|---|
1 | public Indica que cualquier caché puede almacenar la respuesta en caché. |
2 | private Indica que todo o parte del mensaje de respuesta está destinado a un solo usuario y no debe almacenarse en la memoria caché compartida. |
3 | no-cache Un caché no debe utilizar la respuesta para satisfacer una solicitud posterior sin una revalidación exitosa con el servidor de origen. |
4 | no-store La caché no debe almacenar nada sobre la solicitud del cliente o la respuesta del servidor. |
5 | no-transform No convierte la entidad-cuerpo. |
6 | must-revalidate La caché debe verificar el estado de los documentos obsoletos antes de usarla y no se deben usar los caducados. |
7 | proxy-revalidate La directiva proxy-revalidate tiene el mismo significado que la directiva must-revalidate, excepto que no se aplica a los cachés de agentes de usuario no compartidos. |
8 | max-age = seconds Indica que el cliente está dispuesto a aceptar una respuesta cuya antigüedad no supere el tiempo especificado en segundos. |
9 | s-maxage = seconds La edad máxima especificada por esta directiva anula la edad máxima especificada por la directiva max-age o el encabezado Expires. La directiva s-maxage siempre es ignorada por un caché privado. |