Cacheable
Una respuesta cacheable es una respuesta HTTP que se puede almacenar en caché, que se almacena para recuperarla y usarla más tarde, guardando una nueva solicitud en el servidor. No todas las respuestas HTTP se pueden almacenar en caché, estas son las siguientes restricciones para que una respuesta HTTP se almacene en caché:
- El método utilizado en la solicitud se puede almacenar en caché, es decir, un método
GET
oHEAD
. Una respuesta a una solicitudPOST
oPATCH
también se puede almacenar en caché si se indica frescura y el encabezadoContent-Location
es establecido, pero esto rara vez se implementa. (Por ejemplo, Firefox no lo admite según https://bugzilla.mozilla.org/show_bug.cgi?id=109553.) Otros métodos, comoPUT
oDELETE
no se pueden almacenar en caché y su resultado no se puede almacenar en caché. - El código de estado de la respuesta es conocido por el almacenamiento en caché de la aplicación, y se considera almacenable en caché. El siguiente código de estado se puede almacenar en caché:
200
,203
,204
,206
,300
,301
,404
,405
,410
,414
y501
. - No hay encabezados específicos en la respuesta, como
Cache-Control
, que impide el almacenamiento en caché.
Tenga en cuenta que algunas solicitudes / respuestas no almacenables en caché a un URI específico pueden invalidar las respuestas almacenadas previamente en caché en el mismo URI. Por ejemplo, un PUT
a pageX.html invalidará todas las solicitudes GET
o HEAD
en caché al mismo URI.
Cuando ambos, el método de la solicitud y el estado de la respuesta, se pueden almacenar en caché, la respuesta a la solicitud se puede almacenar en caché:
GET /pageX.html HTTP / 1.1 (...) 200 OK (...)
Una solicitud PUT
no se puede almacenar en caché. Además, invalida los datos en caché para solicitarlos al mismo URI realizado a través de HEAD
o GET
:
PUT /pageX.html HTTP / 1.1 (...) 200 OK (...)
Un encabezado específico Cache-Control
en la respuesta puede evitar el almacenamiento en caché:
GET /pageX.html HTTP / 1.1 (...) 200 OK Control de caché: sin caché (...)