Compresión y optimización
IBM Cloud® Internet Services utiliza compresión GZIP y Brotli para varios tipos de contenido con el fin de mejorar los tiempos de carga de las páginas. La compresión se aplica en función del navegador User-Agent
.
Si ya está utilizando, CIS acepta su configuración siempre que se pasen las cabeceras adecuadas en la respuesta del servidor.
CIS sólo admite cuando se comunica con su servidor de origen, y puede entregar contenido que es:
- Comprimido utilizando o Brotli
- Descomprimido
CIS puede convertir entre formatos comprimidos y sin comprimir. Por ejemplo, puede obtener contenido comprimido con GZIP de su origen y servirlo sin comprimir a los clientes. Este proceso se produce independientemente del almacenamiento en caché.
CIS elimina la cabecera Accept-Encoding
y no la respeta.
Tipos de contenidos comprimidos
Además de servir contenido obsoleto y minificar CSS, JS y HTML, CIS comprime las respuestas con GZIP o Brotli para navegadores compatibles. CIS devuelve respuestas codificadas en GZIP o Brotli a clientes y navegadores compatibles para los siguientes tipos de contenido:
text/html
text/richtext
text/plain
text/css
text/x-script
text/x-component
text/x-java-source
text/x-markdown
application/javascript
application/x-javascript
text/javascript
text/js
image/x-icon
image/vnd.microsoft.icon
application/x-perl
application/x-httpd-cgi
text/xml
application/xml
application/xml+rss
application/vnd.api+json
application/x-protobuf
application/json
multipart/bag
multipart/mixed
application/xhtml+xml
font/ttf
font/otf
font/x-woff
image/svg+xml
application/vnd.ms-fontobject
application/ttf
application/x-ttf
application/otf
application/x-otf
application/truetype
application/opentype
application/x-opentype
application/font-woff
application/eot
application/font
application/font-sfnt
application/wasm
application/javascript-binast
application/manifest+json
application/ld+json
Si no desea que se codifique una respuesta concreta de su origen, puede establecer cache-control: no-transform para desactivar la codificación en su servidor web de origen.
Activación de la compresión Brotli
- Conéctese a su cuenta CIS.
- Elija el dominio adecuado.
- Pulse el separador Rendimiento.
- Pulse el separador Avanzado.
- Conmute el interruptor Brotli a
On
.
Minificación de HTML, JavaScript, y CSS
CIS utiliza Minify web content para eliminar todos los caracteres innecesarios de los archivos HTML, JavaScript y CSS, sin afectar a su funcionalidad.
- La minificación de CSS y JavaScript solo funciona en los archivos CSS y JS en memoria caché.
- Después de que CIS devuelva un HIT de caché para el archivo, éste se devuelve a los navegadores en forma minificada, lo que permite a CIS ofrecer un resultado de minificación completo.
- Para aplicar los cambios de minificación, purgue la caché de CIS.
Compresión de optimización del tamaño de imagen
CIS optimiza las imágenes almacenadas en caché en su red de borde eliminando los metadatos y aplicando compresión con o sin pérdidas para acelerar la entrega. Las imágenes fuera del sitio no están optimizadas.
La compresión para optimizar el tamaño de las imágenes sólo está disponible como regla de página en la consola. El valor de nivel de dominio está disponible en la CLI.
Opciones de compresión de tamaño de imagen
En las secciones siguientes se detallan las opciones de compresión de optimización de tamaño de imagen.
Sin pérdidas
- Elimina la mayoría de los metadatos (por ejemplo, los datos EXIF).
- Conserva todos los detalles visuales.
- La salida descomprimida coincide con la imagen original.
Con pérdidas
- Elimina los metadatos y reduce el tamaño de la imagen en aproximadamente un 15%.
- Algunos datos originales se pierden permanentemente.
- En el caso de los archivos PNG, los resultados son efectivamente los mismos que los obtenidos sin pérdidas.
Con los modos Lossless y Lossy se intenta eliminar tantos metadatos como sea posible, pero no se garantiza la eliminación completa debido a factores como el almacenamiento en caché.
WebP
- WebP proporciona una compresión superior:
- Aproximadamente un 26% más pequeño que PNG (sin pérdidas)
- 25-34% más pequeño que JPEG (con pérdidas)
- CIS crea y almacena en caché versiones de WebP.
- WebP sólo se sirve si:
- La cabecera
Accept
del navegador incluye WebP. - La imagen comprimida es significativamente más pequeña que la versión con o sin pérdidas.
- La cabecera
Ejemplo de cabecera Accept
compatible:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Actualmente, WebP solo recibe soporte en los navegadores Firefox, Google Chrome y Opera.
Desactive WebP en su origen para evitar problemas de almacenamiento en caché con navegadores que no admitan WebP.
Comprobación de que la optimización del tamaño de imagen está activada
Active la optimización del tamaño de imagen utilizando una regla de página o valores de dominio de CLI.
CIS añade las siguientes cabeceras a las imágenes optimizadas:
cf-bgj: imgq:85
cf-polished: qual=85, origFmt=jpeg, origSize=95005
cf-cache-status: HIT
La cabecera cf-bgj
confirma que CIS ha aplicado la optimización del tamaño de la imagen y devuelve el ajuste de calidad de la imagen (imgq
). La cabecera cf-polished
representa el estado de optimización
del tamaño de la imagen y devuelve el ajuste de calidad de la imagen (qual
) y el tamaño original (origSize
). La cabecera cf-cache-status
confirma que la imagen se ha almacenado en caché y que se puede
aplicar la optimización del tamaño de la imagen.
WebP la conversión no cambia la imagen URL. La cabecera Content-Type HTTP
indica al navegador el formato original de una imagen.
Estados comunes de Cf-Polished
En la tabla siguiente se muestran los estados comunes de Cf-Polished y cómo resolverlos. Si no se devuelve ninguna cabecera Cf-Polished, intente utilizar la purga de caché de un solo archivo para purgar la imagen.
Estado | Definición | Recomendación |
---|---|---|
input_too_large |
La imagen es demasiado grande o compleja para procesarla y necesita una resolución inferior. | Utilice imágenes PNG o JPEG de menos de 1.000 px y 10 MB. |
not_compressed o not_needed | La imagen se optimizó completamente en el servidor de origen y no se aplicó ninguna compresión. | |
webp_bigger |
Polish intentó convertir a WebP, pero la imagen fue optimizada en el servidor de origen y/o fue creada con una configuración de baja calidad. | Dado que la versión WebP no existe, el estado se establece en la versión PNG o JPEG de la respuesta. |
cannot_optimize o internal_error |
La imagen está dañada o incompleta en el servidor de origen. | Cargue una nueva versión de la imagen en el servidor de origen. |
format_not_supported |
El formato de imagen no es compatible (por ejemplo, BMP, TIFF) y/o el servidor de origen utiliza software de optimización adicional que no es compatible con Polish. | Intente convertir la imagen de entrada a un formato compatible con la web (por ejemplo, PNG, JPEG) y/o desactive cualquier software de optimización adicional en el servidor de origen. |
vary_header_present |
El servidor web de origen envió una cabecera Vary con un valor distinto de accept-encoding . |
Si el servidor web de origen está intentando dar soporte a WebP, inhabilite WebP en el servidor web de origen y deje que Polish realice la conversión de WebP. |
La optimización sigue funcionando cuando accept-encoding
no es el único valor de la cabecera Vary
.