15 49.0138 8.38624 1 0 4000 1 https://www.alexmedina.net 300 true 0

Cabeceras de expiración de contenido estático

0 Comments

Cuando  hacemos un test en Google PageSpeed Insights y nos da como una mejora que debes introducir «Especificar cache del navegador«, nos da la siguiente explicación:

https://developers.google.com/speed/docs/insights/LeverageBrowserCaching

Captura

 

 

En realidad lo que nos quiere decir es que para mejorar la experiencia de usuario a la hora de cargar la web, el contenido estático como imágenes, hojas de estilo y javascript le podemos indicar una fecha de expiración para que no se cargue cada vez que el usuario accede a la página. Esto se puede hacer muy fácilmente, hay dos opciones, desde PHP o desde .htacces. La primera opción te va permitir decir que páginas quieres que se aplique, en la segunda y más recomendable se aplicará a todo el conjunto de páginas.

Aunque se puede expresar la directiva de tiempo con palabras tipo days, week, moth a mi me gusta más la forma numérica y expresarlo en segundos, de esta forma se calcula así:

– ExpiresDefault A3600 una hora
– ExpiresDefault A604800 para una semana

Y se calcula de la siguiente forma: 30 dias = 60*60*24*30 = 2592000

Expiración utilizando .htacces

<ifmodule mod_expires.c>
 ExpiresActive On
 ExpiresDefault A3600
 <FilesMatch ".(gif|jpg|jpeg|png|swf)$">
 ExpiresDefault A604800
 Header append Cache-Control "public"
 </FilesMatch>
 <FilesMatch ".(xml|txt|html)$">
 ExpiresDefault A604800
 Header append Cache-Control "public"
 </FilesMatch>
 <FilesMatch ".(js|css)$">
 ExpiresDefault A604800
 Header append Cache-Control "public"
 </FilesMatch>
</ifmodule>

Expiración utilizando PHP

Se realizará modificando los headers

header("Expires: ".gmdate ("D, d M Y H:i:s", time() + 60*60*24*30)." GMT");

En las siguientes referencias os dejo otras explicaciones útiles:

 

Previous Post
Online JavaScript/CSS Compression
Next Post
Habilitar compresión gzip en Apache (CPanel)

0 Comments

Leave a Reply

SOBRE MÍ

Afortunado de trabajar en lo que me gusta, aprendiendo cada día cosas nuevas y ayudando a crear proyectos.
Conocimientos en diversas tecnologías y experiencia demostrable.
¿Nos ponemos manos a la obra?

Mis Apuntes