¿Qué es la compresión GZIP?

La compresión GZIP es un método para reducir el tamaño de los archivos.
Cuando se trata de la velocidad de la página, archivos más pequeños significan tiempos de carga más rápidos.

GZIP también es un comando del sistema que se utiliza para comprimir archivos.
Estos archivos suelen tener una extensión .
gz extensión de archivo.

En este artículo veremos cómo se utiliza GZIP con los servidores HTTP para comprimir archivos de texto antes de enviarlos por la red.

¿Cómo funciona GZIP?

GZIP es un algoritmo de compresión sin pérdidas basado en el algoritmo deflate.
Deflate, un predecesor de GZIP combina
LZ77 y codificación Huffman. Un algoritmo de compresión sin pérdidas significa que los datos comprimidos son los mismos después de descomprimirlos.

La compresión GZIP funciona en dos etapas.
Primero, la compresión identifica secuencias repetidas de bytes y las representa con una secuencia más corta.

A las secuencias acortadas se les asigna un número de bits en función de su frecuencia.
Cuanto más frecuente es una secuencia, menos bits se le asignan.
Cuanto más rara es una secuencia, más bits se le asignan.

Este proceso da como resultado un archivo comprimido más pequeño que el archivo original.

Ventajas de la compresión GZIP

El aumento de la velocidad de la página es la ventaja más significativa de la compresión GZIP.
Archivos más pequeños significan tiempos de carga más rápidos.
GZIP puede hacer esto con una sobrecarga de CPU y memoria relativamente baja.

Dependiendo del archivo y del nivel de compresión, GZIP puede reducir el tamaño de un archivo entre un 75% y un 95%.

Por último, la compresión GZIP es un método ampliamente adoptado para comprimir archivos.
Puedes contar con que los navegadores modernos soportan la compresión GZIP.

Cómo utilizar GZIP con una CDN

Una Red de Entrega de Contenidos (CDN) es una red distribuida de servidores que sirven contenidos a los usuarios desde una ubicación geográficamente cercana al usuario.
Una CDN acelera la entrega y añade redundancia a tu sitio web.

La buena noticia es que todas las CDN deberían tener ya activado GZIP.
Les conviene reducir el tamaño de los archivos antes de enviártelos.

Puedes utilizar las herramientas que se indican a continuación para comprobar que es así.
Si descubres que GZIP no está activado, busca en la documentación de tu CDN cómo activar GZIP.

Cómo comprobar la activación de GZIP

Hay muchas formas sencillas de determinar si la compresión GZIP está activada en tu servidor web.

Prueba de compresión GZIP en línea

Una excelente herramienta en línea es https://www.giftofspeed.com/GZIP-test/.
Enter the URL in question; the test will return if compression is enabled for GZIP or another method.

Comprueba el encabezado HTTP

El comando cURL comprueba si un servidor está habilitado correctamente.
En el comando siguiente, las opciones -L se utiliza para seguir posibles redirecciones (301, 302), y la -H envía la cabecera, haciendo saber al servidor que esta solicitud puede aceptar la codificación GZIP.

curl -LH "Accept-Encoding: GZIP" -I http://website.com

 

La respuesta debe contener algo similar a lo siguiente.

codificación del contenido: GZIP

Cómo activar la compresión GZIP

Una vez que sabemos cómo verificar que GZIP está activado, podemos configurar los servidores web y confirmar que funciona.
A continuación se explica cómo configurar GZIP en varias plataformas.

Activar GZIP en WordPress

La mayoría de los servicios de alojamiento de WordPress ya tienen activado GZIP.
Puedes utilizar uno de los sitios de pruebas en línea para verificarlo.

Si ves que GZIP no está activado por defecto, puedes utilizar muchos plugins de WordPress, como WP Rocket, JetPack y WP Super Cache.

Una tercera opción es la .htaccess archivo. Puedes añadir el texto que aparece a continuación en Red Hat/CentOS en un archivo .htaccess. Asegúrate siempre de verificar que está activado utilizando uno de los métodos de este artículo.

Activar GZIP en Apache

En el servidor web Apache, activa mod_deflate activa la compresión GZIP.
A continuación te explicamos cómo hacerlo tanto en sistemas basados en Ubuntu como en Red Hat.

Ubuntu/Debian

Lo más probable es que desinflar ya estará cargado cuando instales Apache.
Para confirmarlo, ejecuta el siguiente comando.

a2enmod deflate

 Este comando activa el módulo deflate y utiliza la siguiente configuración en

/etc/apache2/mods-enabled/deflate.conf.
 <IfModule mod_deflate.c>
          <IfModule mod_filter.c>  AddOutputFilterByType DEFLATE texto/html texto/plain texto/xml texto/css AddOutputFilterByType DEFLATE aplicación/x-javascript aplicación/javascript aplicación/ecmascript AddOutputFilterByType DEFLATE aplicación/rss+xml AddOutputFilterByType DEFLATE aplicación/xml  </IfModule>
</IfModule>

RedHat/CentOS

En Apache 2.4 el módulo mod_deflate ya está cargado.
Para configurarlo, añade lo siguiente al final del archivo
httpd.conf para una configuración sencilla.

<ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript </ifmodule>

Reinicia el servidor para que los cambios surtan efecto.

Activar GZIP en NGINX

Para activar la compresión GZIP en NGINX, añade las siguientes líneas a tu nginx.conf.

GZIP on; GZIP_vary on; GZIP_min_length 1024; GZIP_proxied expired no-cache no-store private auth; GZIP_types text/plain text/css text/xml text/javascript application/x-javascript application/xml; GZIP_disable "MSIE [1-6]\";

Recuerda reiniciar el servidor para que los cambios surtan efecto.

Activar GZIP en Microsoft IIS

Para Microsoft IIS, asegúrate de que está instalada la Compresión HTTP.
Puedes encontrar una descripción general de cómo hacerlo
aquí.Coloca lo siguiente en web.config o en applicaitonHost.config.

<httpCompression directory=%SystemDrive% Archivos temporales comprimidos">
    <scheme name="br" dll=%ProgramFiles% Compression\iisbrotli.dll" />
    <scheme name="gzip" dll=%ProgramFiles% Compression\iiszlib.dll" />
    <dynamicTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="mensaje/*" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </dynamicTypes>
    <tiposestáticos>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="mensaje/*" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="application/atom+xml" enabled="true" />
        <add mimeType="application/xaml+xml" enabled="true" />
        <add mimeType="imagen/svg+xml" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </staticTypes>
</httpCompression>

Reinicia el servidor para que los cambios surtan efecto.

Compresión Brotli vs GZIP

GZIP sigue siendo uno de los esquemas de compresión más populares.
GZIP se utiliza para comprimir archivos enteros y es compatible con todos los navegadores modernos.

Brotli puede comprimir archivos enteros, pero fue diseñado para comprimir flujos de datos, cosa que GZIP no puede hacer.
Brotli, al tener la ventaja de ver cómo se ha desarrollado la web, puede comprimir datos en flujo, piensa en mp3 o vídeo.

Se ha demostrado que Brotli comprime los datos con mayor eficacia que GZIP y cada vez es más compatible con los navegadores web.
Ambas son excelentes soluciones para aumentar la velocidad de tu sitio web.