Compressed HTML comprime tus páginas

Por el 6 de enero de 2007

en: Programacion

¿Qué me dirías si te dijera que con unas pocas de líneas en tu archivo htaccess, pudieras comprimir en un 50% la transferencia de carga de tus páginas, añadiendo unicamente una línea en cada uno de los archivos a los que lo deseas aplicar la compresión?

Este pequeño truco es especialmente útil para archivos cómo los js o los css, pongamos un ejemplo, la popular librería prototype pesa unos 47kb pero utilizando gzip lo podemos reducir a 10Kb una quinta parte del tamaño original.

Y esto con un sólo archivo, pero recuerda que no podrás aplicarlo a tus scripts (php,asp,etc), con esta utilidad la descarga de la página por parte del cliente y liberarás un poco de carga en el servidor.

Primer Paso

El primer paso será localizar nuestro archivo estático (.js .css) al que deseamos aplicar la compresión.

Creamos una copia comprimida con 7Zip unicamente se han de seguir las intrucciones de la web, pero es muy sencilla, si hemos estado trabajando con un archivo.js nos quedará:

archivo.js
archivo.js.gz (notoriamente menos pesado)

Segundo Paso

Despues de crear nuestras copias comprimidas de aquellos archivos que deseamos que sean menos pesados pasamos a realizar una copia de seguridad de nuestro .htaccess en el raiz del servidor.

Una vez realizada la copia de seguridad editamos el archivos .htaccess y añadimos las siguientes líneas.

RewriteEngine on
RewriteOptions Inherit

#Check to see if browser can accept gzip files.
ReWriteCond %{HTTP:accept-encoding} (gzip.*)

#make sure there’s no trailing .gz on the url
#ReWriteCond %{REQUEST_FILENAME} !^.+\.gz$

#check to see if a .gz version of the file exists.
RewriteCond %{REQUEST_FILENAME}.gz -f

#All conditions met so add .gz to URL filename (invisibly)
RewriteRule ^(.+) $1.gz [L]

Las primeras líneas activan el rewrite engine, despues comprobaremos si el navegador del cliente acepta nuestros archivos comprimidos en caso afirmativo se asegura que el archivo por el que se ha recibido la peticion no es un .gz y por último chequeamos si existe una copia del archivo en cuestión.

Si se cumplen todas las condiciones el servidor servirá el archivo comprimido en caso contrario servirá el archivo original.

Tercer Paso

Ahora sólo nos queda probarlo… subiremos al servidor la copia original y comprimida de alguno de los archivos (test.html.gz y test.html) de este modo todo debería funcionar correctamente la prueba de fuego será eliminar el original (test.html) sí despues de esto sigue funcionando habremos conseguido servir el archivo menos pesado.

Enlaces Relacionados

Generar passwords accesibles con Php
Codigo Fuente del generador de passwords en PHP
Ejemplo de ejecución del script
PHP y MySql una estrecha relación
5 cosas que no sabías hacer con PHP
Generar documentos OpenOffice con PHP
Nueva versión de Notepad++
Hola Mundo!
Identificar las consultas más lentas de MySql
Crea sencillas gráficas con MySql
Programar un script PHP para saber quién está en línea
Consejos para optimizar PHP
Editando en Opera páginas web en tiempo real

Dejar un comentario