Apache: comprimir como zip (no gzip)

Apache: comprimir como zip (no gzip)

Lo configuré apache 2.4para comprimir el contenido antes de entregarlo al cliente, usando mod_deflateel encabezado del cliente configurado en "Accept-Encoding: gzip". Así que esto ya lo puse en funcionamiento, generando un archivo comprimido con gzip válido:

curl --header "Accept-Encoding: gzip" https://my.website/ > content.gz

¿Hay alguna manera de permitir "Accept-Encoding: zip"comprimir como zip?

Hasta donde tengo entendido la documentación, esto no parece posible:

La codificación gzip es la única compatible para garantizar la compatibilidad total con implementaciones de navegadores antiguos. La codificación deflate no es compatible... (https://httpd.apache.org/docs/2.4/mod/mod_deflate.html)

La pregunta proviene de un Windowsusuario que no puede descomprimir gziparchivos (supongo que solo usa herramientas nativas de Windows).

[editar: como señaló Gerald-schneider, un navegador descomprimirá automáticamente el contenido, pero estamos utilizando curlherramientas de línea de comandos para poder programar la API y, por lo tanto, no hay ningún navegador involucrado. Gracias también a todas las demás respuestas y comentarios, creo que debería haber sido más preciso, es decir, escribir el curlcomando para empezar].

Respuesta1

Creo que no entendiste para qué sirve la compresión en el protocolo HTTP. No es para descargar archivos. Es para reducir los datos que se transfieren cuando simplemente estás navegando. Los archivos que comprimen son HTML, CSS, JavaScripts e imágenes. La descompresión la gestiona el navegador antes de mostrar las páginas. Y los navegadores pueden manejar gzip perfectamente en Windows.

Respuesta2

Como se señala en la cita de la pregunta de la documentación de Apache, esnoEs posible configurar Apache para servir contenido comprimido zipcon el mod_deflateencabezado del cliente configurado en Accept-Encoding: zip. Sólo gzipfunciona. Si un usuario utiliza unnavegadorese navegador lo decodificará sobre la marcha. Si el usuariodescargasel contenido, por ejemplo, curltiene que comprimir el gzipcontenido editado, ya sea con herramientas nativas del sistema operativo o con herramientas instaladas (estas últimas necesarias, por ejemplo, para usuarios de Windows).

Respuesta3

Al leer tu comentario, no estoy seguro de lo que estás preguntando:

  • ¿Quiere que su servidor Apache envíe un archivo normal (piense en html o texto sin formato) con codificación Zip en lugar de Gzip? (Imposible según la documentación)
  • ¿Quieres que curl pueda recuperar datos de tu servidor? (en ese caso, no necesita preocuparse por la codificación, ya que es sólo una optimización de red "menor")
  • ¿Quieres que curl descargue algún contenido zip? En ese caso, deberías configurar httpd para que sirva directamente tu archivo zip con algunas configuraciones de "archivo estático".

De todos modos, no estoy seguro de que la codificación del contenido sea lo que estás buscando aquí...

información relacionada