¿Cómo habilitar el almacenamiento en caché del navegador para mi sitio? ¿Acabo de poner cache-control: public en algún lugar de mi encabezado como este?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
Cache-Control:public;
>
Estoy usando la última versión de PHP que se desarrolla en la última versión de XAMPP.
http
browser-cache
Andrés
fuente
fuente
Respuestas:
Para usar el control de caché en HTML, use la metaetiqueta , por ejemplo
El valor en el campo de contenido se define como uno de los cuatro valores a continuación.
Parte de la información en el
Cache-Control
encabezado es la siguientefuente
<meta>
siempre ha sido una forma terrible y escamosa de especificar el almacenamiento en caché.no-store
valor (a pesar de que el documento hace referencia a RFC 2068 ):no-store
evita que el documento se almacene / guarde en caché en cualquier lugar. Mientras queno-cache
sí permite que se almacene, pero debe verificar con el servidor cada vez. Los navegadores tienden a almacenarno-cache
páginas para habilitar la funcionalidad de botón de retroceso , etc.Puede configurar los encabezados en PHP utilizando:
Tenga en cuenta que los encabezados exactos utilizados dependerán de sus necesidades (y si necesita admitir HTTP 1.0 y / o HTTP 1.1 )
fuente
Pragma
yExpires
probablemente sean redundantes para la gran mayoría de los navegadores. fastly.com/blog/headers-we-dont-wantComo escribí es mejor usar el archivo
.htaccess
. Sin embargo, tenga cuidado con el tiempo que deja los contenidos en la memoria caché.Utilizar:
Donde: 604800 = 7 días
PD: Esto se puede usar para restablecer cualquier encabezado
fuente
La página en http://www.askapache.com/htaccess/apache-speed-cache-control.html sugiere usar algo como esto:
fuente
cache
yno-cache
).max-age
ypublic
no entren en conflicto, entonces el orden no importa.Header
directiva, debe habilitarlamod_headers
.a2enmod
o hacer un enlace simbólico de/etc/apache2/mods-available/headers.load
a/etc/apache2/mods-enabled/headers.load
.Esto es lo mejor
.htaccess
que he usado en mi sitio web real:fuente
<filesMatch "\.(x?html?|php)$">
para evitar que las páginas HTML estáticas se almacenen en caché. El resto de los emparejamientos de archivos están bien.<filesmatch "\.(eot|woff|otf|ttf|svg)$">
.css
yjs
en privado si tiene almacenamiento en caché de proxy. No pude encontrar ninguna recomendación en su enlace con respecto a eso. La mayoría de los CDN recomiendan que almacene en caché esos valores.Para el servidor Apache, debe verificar mod_expires para configurar los encabezados Expires y Cache-Control.
Alternativamente, puede usar la directiva Header para agregar Cache-Control por su cuenta:
fuente
La etiqueta de control de meta caché permite a los editores web definir cómo las cachés deben manejar las páginas. Incluyen directivas para declarar lo que debe ser almacenable en caché, lo que puede almacenarse mediante cachés, modificaciones del mecanismo de caducidad y controles de revalidación y recarga.
Los valores permitidos son:
Público: puede almacenarse en caché en cachés compartidos públicos
Privado: solo puede almacenarse en caché en caché privado
sin caché: no puede almacenarse en caché
sin almacenamiento: puede almacenarse en caché pero no archivarse
Tenga cuidado con la mayúsculas y minúsculas. Agregue la siguiente metaetiqueta en la fuente de su página web. La diferencia en la ortografía al final de la etiqueta es que usas "/> = xml o"> = html.
Fuente-> MetaTags
fuente
OWASP recomienda lo siguiente,
Siempre que sea posible, asegúrese de que el encabezado HTTP de control de caché esté configurado con no-cache, no-store, must-revalidate, private; y que el encabezado HTTP pragma está configurado sin caché.
fuente