php - htcacheclean - enable mod_expires apache2 ubuntu
Cuál usar: encabezado de vencimiento, encabezado modificado por última vez o ETags (2)
Puede usar el encabezado Expires
en conjunto pero independientemente de los otros dos. Es universalmente compatible con servidores proxy y cachés del navegador.
La diferencia entre los sellos ETag
y Last-Modified
es más semántica. Los etags son opacos a los clientes. Por lo general es una suma de comprobación. Mientras que un encabezado Last-Modified puede ser interpretado por los clientes. Se entiende que la última marca de tiempo modificada funciona linealmente.
Si un navegador solicita un recurso con If-Unmodified-Since
, entonces una amplia gama de marcas de tiempo en el pasado puede coincidir con esa condición. Si sus páginas cambian con frecuencia, una marca de tiempo de última modificación podría ser ventajosa.
El enfoque de ETag, por otro lado, conduce a clientes que guardan una última huella digital por recurso. (No estoy seguro de si los cachés del navegador recuerdan varios ETags). En las solicitudes, solo se enumeran uno o unos pocos tokens posibles If-None-Match
. Esto podría significar más fallos. Además, debe comparar varias sumas de comprobación, mientras que con una marca de hora de última modificación podría tener una comparación aritmética.
La verdadera ventaja de ETags es que puede comparar de manera confiable las huellas digitales. Las marcas de tiempo de Última modificación son un poco más vagas, ya que no verifican si el contenido real de la página ha cambiado.
Ver también:
Estoy ejecutando PHP en Apache, y estoy confundido acerca de cómo implementar el almacenamiento en caché del lado del servidor, para hacer que el sitio se cargue más rápido.
¿Cuál es la diferencia entre los encabezados Expires
, Last-Modified
y ETag
, y cuál se debe usar en qué situación?
Expires
y Cache-Control
son "encabezados de caché fuertes"
Last-Modified
y ETag
son "encabezados de caché débiles"
Primero, el navegador comprueba Expires/Cache-Control
para determinar si realizar una solicitud a los servidores.
Si tiene que realizar una solicitud, enviará Last-Modified/ETag
en la solicitud HTTP. Si el valor Etag
del documento coincide con eso, el servidor enviará un código 304 en lugar de 200, y no habrá contenido. El navegador cargará los contenidos desde su caché.
Recomiendo usar uno de los encabezados de almacenamiento en caché fuerte, junto con uno de los encabezados de almacenamiento en caché débil.