No estoy seguro de por qué se cerró, solo porque no involucra un lenguaje de programación no significa que no esté relacionado con la codificación.
BlueRaja - Danny Pflughoeft
@ BlueRaja-DannyPflughoeft Estoy de acuerdo, esto ha sido visto más de 65100 veces, así que creo que es un tema muy buscado sin mencionar que respondo preguntas de htaccess todos los días.
@IsmaelMiguel en realidad le dirá al cliente (y más importante, cualquier servidor de almacenamiento en caché en el camino), que el archivo difiere para cada variante del s valor del encabezado de solicitud Accept-Encoding` del cliente , en lugar de cada Content-Encodingvariante del valor del encabezado de respuesta del servidor.
aularon
@ BlueRaja-DannyPflughoeft Porque los usuarios con mucha reputación y los usuarios que buscan reputación construyen reputación buscando preguntas para cerrar. Es frustrante que tan a menudo lleve a cerrarse preguntas que no deberían serlo.
Dan Nissenbaum
Respuestas:
89
Supongo que significa que habilita la compresión gzip para sus archivos css y js, porque eso permitirá al cliente recibir contenido codificado en gzip y contenido simple.
Así es como se hace en apache2:
<IfModule mod_deflate.c>
#The following line is enough for .js and .css
AddOutputFilter DEFLATE js css
#The following line also enables compression by file content type, for the following list of Content-Type:s
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml
#The following lines are to avoid bugs with some browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
Y aquí se explica cómo agregar el Vary Accept-Encodingencabezado: [src]
El Vary:encabezado le dice que el contenido servido para esta URL variará de acuerdo con el valor de un determinado encabezado de solicitud. Aquí dice que servirá contenido diferente para los clientes que lo digan Accept-Encoding: gzip, deflate(un encabezado de solicitud), que el contenido servido a los clientes que no envían este encabezado. La principal ventaja de esto, AFAIK, es permitir que los proxies de almacenamiento en caché intermedios sepan que deben tener dos versiones diferentes de la misma URL debido a dicho cambio.
Me temo que Aularon no proporcionó suficientes pasos para completar el proceso. Con un poco de prueba y error, pude habilitar Gzipping en mi servidor WHM dedicado.
A continuación se muestran los pasos:
Ejecute EasyApache dentro de WHM, seleccione Deflate dentro de la lista Exhaustive Options y reconstruya el servidor.
Una vez hecho esto, vaya a Configuración de servicios >> Configuración de Apache >> Incluir editor >> Publicar VirtualHost Incluir, seleccione Todas las versiones, y luego pegue el código mod_headers.cy mod_headers.c (enumerados arriba en la publicación de Aularon) encima de otro dentro del campo de entrada.
Una vez guardado, ¡estaba viendo un ahorro de datos del 75,36% en promedio! Puede ejecutar una prueba de antes y después utilizando esta herramienta de compresión HTTP para ver sus propios resultados: http://www.whatsmyip.org/http_compression/
Muchas horas dedicadas a aclarar de qué se trataba. Por favor, lea esta publicación para obtener los .HTACCESScódigos avanzados y aprender lo que hacen.
Puedes usar:
Header append Vary "Accept-Encoding"
#or
Header set Vary "Accept-Encoding"
Esto me estaba volviendo loco, pero parece que después de la edición de Aularon faltaban los dos puntos "Vary". Así que cambiar "Vary Accept-Encoding"para "Vary: Accept-Encoding"solucionar el problema por mí.
Habría comentado debajo de la publicación, pero no parece que me lo permita.
De todos modos, espero que esto le ahorre a alguien el mismo problema que yo estaba teniendo.
No es necesario especificar o incluso verificar si el archivo está / se ha comprimido, puede enviarlo a todos los archivos, en cada solicitud.
Le dice a los servidores proxy descendentes cómo hacer coincidir los encabezados de solicitudes futuras para decidir si la respuesta almacenada en caché se puede usar en lugar de solicitar una nueva del servidor de origen.
Vary: Accept-Encoding
le dirá al navegador que almacene en caché una versión de la página basada en elContent-Encoding
encabezado. Debería ver stackoverflow.com/questions/1975416/… y developers.google.com/speed/docs/best-practices/…s
valor del encabezado de solicitud Accept-Encoding` del cliente , en lugar de cadaContent-Encoding
variante del valor del encabezado de respuesta del servidor.Respuestas:
Supongo que significa que habilita la compresión gzip para sus archivos css y js, porque eso permitirá al cliente recibir contenido codificado en gzip y contenido simple.
Así es como se hace en apache2:
Y aquí se explica cómo agregar el
Vary Accept-Encoding
encabezado: [src]El
Vary:
encabezado le dice que el contenido servido para esta URL variará de acuerdo con el valor de un determinado encabezado de solicitud. Aquí dice que servirá contenido diferente para los clientes que lo diganAccept-Encoding: gzip, deflate
(un encabezado de solicitud), que el contenido servido a los clientes que no envían este encabezado. La principal ventaja de esto, AFAIK, es permitir que los proxies de almacenamiento en caché intermedios sepan que deben tener dos versiones diferentes de la misma URL debido a dicho cambio.fuente
Me temo que Aularon no proporcionó suficientes pasos para completar el proceso. Con un poco de prueba y error, pude habilitar Gzipping en mi servidor WHM dedicado.
A continuación se muestran los pasos:
Ejecute EasyApache dentro de WHM, seleccione Deflate dentro de la lista Exhaustive Options y reconstruya el servidor.
Una vez hecho esto, vaya a Configuración de servicios >> Configuración de Apache >> Incluir editor >> Publicar VirtualHost Incluir, seleccione Todas las versiones, y luego pegue el código mod_headers.cy mod_headers.c (enumerados arriba en la publicación de Aularon) encima de otro dentro del campo de entrada.
Una vez guardado, ¡estaba viendo un ahorro de datos del 75,36% en promedio! Puede ejecutar una prueba de antes y después utilizando esta herramienta de compresión HTTP para ver sus propios resultados: http://www.whatsmyip.org/http_compression/
¡Espero que esto funcione para todos ustedes!
fuente
¡Para gzip sus archivos de fuentes también!
como en:
fuente
Muchas horas dedicadas a aclarar de qué se trataba. Por favor, lea esta publicación para obtener los
.HTACCESS
códigos avanzados y aprender lo que hacen.Puedes usar:
fuente
Esto me estaba volviendo loco, pero parece que después de la edición de Aularon faltaban los dos puntos
"Vary"
. Así que cambiar"Vary Accept-Encoding"
para"Vary: Accept-Encoding"
solucionar el problema por mí.Habría comentado debajo de la publicación, pero no parece que me lo permita.
De todos modos, espero que esto le ahorre a alguien el mismo problema que yo estaba teniendo.
fuente
si alguien necesita esto para el
NGINX
archivo de configuración, aquí está el fragmento:fuente
No es necesario especificar o incluso verificar si el archivo está / se ha comprimido, puede enviarlo a todos los archivos, en cada solicitud.
unset
objetivo es corregir algunos errores en el alojamiento GoDaddy anterior, opcionalmente.fuente