Komprimierung reduziert Antwortzeiten, indem die Größe der HTTP-Antwort verringert wird. Gzip ist die beliebteste und effektivste Komprimierungsmethode, die derzeit verfügbar ist, und reduziert die Antwortgröße im Allgemeinen um etwa 70 %.
Im Jahr 2009 reiste 90 % des Internetverkehrs über Browser, die Gzip unterstützten. Heute
Alle modernen Browser unterstützen die GZIP-Komprimierung und verhandeln sie automatisch für alle HTTP-Anfragen: Unsere Aufgabe ist es, sicherzustellen, dass der Server ordnungsgemäß konfiguriert ist, um die komprimierte Ressource bereitzustellen, wenn sie vom Client angefordert wird.
Auf einem Apache-basierten Server können Sie dies über die `.htaccess`-Datei tun
# BEGIN GZIP
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</ifmodule>
# END GZIP
Dies ist im Wesentlichen eine Liste von MIME-Typen, auf die Gzipping dann angewendet wird. Sie können die Liste gerne für alle textbasierten Assets anpassen, die Sie bereitstellen.
Das HTML5 Boilerplate-Projekt bietet Serverkonfigurationen für alle gängigen Server. Dies ist seine Version für .htaccess
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE "application/atom+xml" \
"application/javascript" \
"application/json" \
"application/ld+json" \
"application/manifest+json" \
"application/rdf+xml" \
"application/rss+xml" \
"application/schema+json" \
"application/vnd.geo+json" \
"application/vnd.ms-fontobject" \
"application/x-font-ttf" \
"application/x-javascript" \
"application/x-web-app-manifest+json" \
"application/xhtml+xml" \
"application/xml" \
"font/eot" \
"font/opentype" \
"image/bmp" \
"image/svg+xml" \
"image/vnd.microsoft.icon" \
"image/x-icon" \
"text/cache-manifest" \
"text/css" \
"text/html" \
"text/javascript" \
"text/plain" \
"text/vcard" \
"text/vnd.rim.location.xloc" \
"text/vtt" \
"text/x-component" \
"text/x-cross-domain-policy" \
"text/xml"
</IfModule>
Was passiert mit den 10%, die es nicht unterstützen?
Die Datei wird dann nicht Gzipt.
ICH BIN DIE 1%
Sie entscheiden sich schließlich dafür
füge das in gzip ein
Header set Cache-Control “max-age=290304000, public”
Unter Apache 2 ist es besser, mod_deflate zu verwenden
Warum ist Deflate unter Apache 2 besser?
Ich habe nie verstanden, wie GZIP funktioniert. Wenn ich das einfach in die .htaccess kopiere, wird dann mein gesamter Inhalt gegzipT?
Manche Server unterstützen es nicht. Dies könnte der Grund sein, warum es bei Ihnen nicht funktioniert. Das obige Beispiel komprimiert die folgenden Dateitypen
– Text
– HTML
– XML
– CSS
– JS
Wichtig ist nicht die Dateiendung, sondern wie der Server die Dateien behandelt. Bilder – unabhängig vom Format – werden mit dieser Einstellung nicht komprimiert. Das wäre nicht sinnvoll, da alle Bildformate bereits auf die eine oder andere Weise eine Komprimierung verwenden. Und diese Komprimierungsmethoden sind bei der Verarbeitung von Bitmaps (Bilddaten) weitaus effektiver.
Es wird das Verzeichnis gzipen, unter dem die Datei „.htaccess“ liegt.
Gibt es dafür einen Nachteil?
Was passiert in Browsern, die Gzip nicht unterstützen, wenn dies verwendet wird?
Ich habe eine Frage als .htaccess-Neuling.
Wie funktioniert dieser Code?
Ich habe ihn zu meiner .htaccess-Datei hinzugefügt und Yslow in FireBug sagt, dass ich keine Gzip-Komprimierung habe?
Irgendwelche Ideen
Ich möchte wissen, wo sich die Datei .htaccess befindet, wo dieser obige Code eingefügt wird, und sagen Sie mir auch, wie die Vorgehensweise für diese Gzip/Deflate-Integration ist.
Ich habe diese Zeichenfolge hinzugefügt, aber sie hat nicht funktioniert. Mein Server verwendet Apache 2.
Ich benutze diesen für Gzip und Deflate
# BEGIN GZIP
# mod_gzip-Komprimierung (veraltet, Apache 1.3)
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|xml|txt|css|js)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
# END GZIP
# DEFLATE-Komprimierung
<IfModule mod_deflate.c>
# Komprimierung einstellen für: html,txt,xml,js,css
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
# Komprimierung für fehlerhafte Browser deaktivieren
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
# Header-Informationen für Proxys setzen
Header append Vary User-Agent
</IfModule>
# END DEFLATE
was denken Sie über diesen Code?
Habe es gerade getestet und es hat super funktioniert, danke!
Ich habe einen JavaScript-Code zur Seitenladung, der mir die Ladezeit mitteilt. Nachdem ich dies zur .htaccess-Datei in meinem öffentlichen_html-Stammverzeichnis hinzugefügt hatte, sank die Ladezeit meiner Websites von etwa 2,2-1,5 Sekunden auf Mobilgeräten auf 0,8-0,4 Sekunden.
Weniger als eine halbe Sekunde.
Optimieren Sie Ihr CSS, fügen Sie dies ein… umwerfend.
Danke, Sir!
Fantastisch, vielen Dank.
Habe gerade eine meiner Testseiten überprüft und sie wurde um über 70% komprimiert!
Ich habe dies zu httpd.conf hinzugefügt. Ist das in Ordnung oder sollte man diesen Code immer in .htaccess-Dateien hinzufügen, wo er benötigt wird?
Nochmals vielen Dank,
James
Hallo, ich kann meine Dateien nicht gzipten. Ich konnte durch die Suche im Internet nicht mehr verstehen. Ich habe Apache Tomcat (Version 6) installiert. Die Var-Datei in webapps gelegt. Eine httpd.conf-Datei erstellt und in den conf-Ordner gelegt. Ich weiß nicht mehr. Bitte helfen Sie mir. Die obigen Snippets hineinkopiert. Aber ich finde keine Änderungen.
Wo gehört dieser Code also hin? Ist es nur eine PHP-Datei, die man in das Stammverzeichnis seiner Website steckt?
Danke Mann! Hat mir wirklich geholfen, meine Website zu beschleunigen.
Ich benutze dies, um meine PHP-Seiten zu gzipten
php_value output_handler ob_gzhandler
es funktioniert nicht mit flush() in PHP
funktioniert irgendeine Komprimierung mit flush()?
Sie sollten auch
image/svg+xmlhinzufügen.Der Titel des Artikels lautet „Aktive Gzip-Komprimierung“, aber Sie verwenden mod_deflate! „“
Für GZIP müssen Sie mod_gzip verwenden!!
z.B. „“
Ref: http://www.parorrey.com/blog/webmaster-tasks/enabling-gzip-compression-on-your-website-on-apache-via-htaccess/
Hallo,
Ich habe es benutzt, aber YSlow sagt immer noch, dass Gzip für CSS- und JS-Dateien erforderlich ist.
Vielen Dank!
Page Speed Score 92/100 ;))
Wir haben gerade einen kostenlosen Beta-Service gestartet, der es Webentwicklern ermöglicht, GZIP (und andere Leistungsmetriken wie Ressourcenladezeit) für alle Seitenressourcen zu prüfen.
Wir denken, dies ist der schnellste und einfachste Weg, Gzip zu überprüfen. Wir haben darauf geachtet, dass die Leute nicht mit Daten überflutet werden, daher sind die Ergebnisse, die Sie erhalten, auf den Punkt gebracht.
gzipWTF
Das ist hervorragend. Wenn alte Browser es nicht unterstützen, dann ist das in Ordnung. Ich bin fest davon überzeugt, für die Zukunft zu bauen. Danke, Chris.
Vielen Dank, meine Website wurde um 69,9 % komprimiert, genau wie Sie es gesagt haben. Die Website läuft viel schneller als zuvor.
Hallo,
Ich habe eine Frage zu Gzip.
Angenommen, der Server fügt den Header „Content-Encoding: gzip“ hinzu.
Aber der eigentliche Inhalt ist nicht gegzipT (angenommen, die Komprimierung ist fehlgeschlagen und die Daten werden ohne Komprimierung gesendet). Was sind die Auswirkungen davon?
Wie werden HTTP-Clients (insbesondere Browser) damit umgehen?
Vielen Dank,
Narendra
Mein Server stürzt immer ab, wenn ich Gzip erzwinge, ich musste es in PHP machen, irgendwelche Ideen?
Dasselbe hier…
Verwenden Sie einen Hosting-Anbieter? Jeder Hosting-Anbieter ist anders. Die meisten unterstützen es, verlangen aber, dass Sie es aktivieren. Wenn Sie deren Fragen und Antworten durchsuchen, hat normalerweise jemand bereits die Fragen gestellt und eine Antwort erhalten.
Zum Beispiel benutze ich Hostmonster, also musste ich dies tun, um es für meine Website zu aktivieren. Im Artikel steht, dass ich zuerst meine php.ini-Datei bearbeiten musste, um es zu aktivieren, und dann den Code zur .htaccess-Datei hinzufügen.
Wenn Sie die .htaccess-Datei nicht haben, erstellen Sie einfach eine und fügen Sie sie hinzu. HTML5 Boilerplate hat eine großartige .htaccess-Datei, die die meisten branchenüblichen Dinge abdeckt.
http://goo.gl/t4381
Ich habe ein 2 MB großes PNG-Bild in meinem Header. Es gibt keine Möglichkeit, die Größe des Bildes zu verringern, es würde zu verlustbehaftet aussehen. Gibt es eine Möglichkeit, dieses Bild in .htaccess zu komprimieren? Dieser Schnipsel funktioniert gut für mich, 2,7x.
Auf keinen Fall ist ein 2MB-Bild eine gute Idee. Schnappen Sie sich Photoshop und speichern Sie für Web und Geräte, um Himmels willen. Wenn Sie immer noch Probleme mit der Bildgröße bei PNG haben, ist das Bild möglicherweise nicht für PNG geeignet und Sie müssen das PNG mit dem Hintergrund dahinter kombinieren und es in ein JPG umwandeln. Ein Header-Bild sollte 100-mal kleiner sein als dies. Was ist, wenn jemand Ihre Website über eine kostenpflichtige Verbindung (Mobilgerät) aufruft und viel Geld bezahlt, um Ihr 2-MB-Meisterwerk zu sehen?
Sie können tinypng.org verwenden, um Ihre PNGs ohne Qualitäts- oder Größenverlust zu komprimieren. :D
Wie wäre es damit?
# Force deflate for mangled headers SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding # Compress all output labeled with one of the following MIME-types AddOutputFilterByType DEFLATE application/atom+xml \ application/javascript \ application/json \ application/rss+xml \ application/vnd.ms-fontobject \ application/x-font-ttf \ application/xhtml+xml \ application/xml \ font/opentype \ image/svg+xml \ image/x-icon \ text/css \ text/html \ text/plain \ text/x-component \ text/xmlEntschuldigung für den letzten Kommentar, er wurde nicht richtig angezeigt. Hier ist der Code noch einmal. Ersetzen Sie einfach „[“ und „]“ durch „<“ und „>“.
[IfModule mod_deflate.c] # Force deflate for mangled headers [IfModule mod_setenvif.c] [IfModule mod_headers.c] SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding [/IfModule] [/IfModule] # Compress all output labeled with one of the following MIME-types [IfModule mod_filter.c] AddOutputFilterByType DEFLATE application/atom+xml \ application/javascript \ application/json \ application/rss+xml \ application/vnd.ms-fontobject \ application/x-font-ttf \ application/xhtml+xml \ application/xml \ font/opentype \ image/svg+xml \ image/x-icon \ text/css \ text/html \ text/plain \ text/x-component \ text/xml [/IfModule] [/IfModule]Hallo,
Entschuldigung, falsche Zeichen beim Posten hier, müssen ersetzt werden…
Hier ist, was mein Host-Admin getan hat
\# Optimierung
ExpiresActive On
ExpiresDefault A0
\# Medien 1 Jahr lang cachen (für immer).
[FilesMatch “\.(gif|jpg|jpeg|png|gif|bmp|swf)$”]
ExpiresDefault A31536000
Header append Cache-Control “public”
[/FilesMatch]
\# 2 Stunden Caching für häufig aktualisierte Dateien einrichten
[FilesMatch “\.(xml|txt|html|js|css)$”]
ExpiresDefault A1209600
Header append Cache-Control “proxy-revalidate”
[/FilesMatch]
[FilesMatch “\.(php|cgi|pl|py|rb|rhtml|htm)$”]
ExpiresActive Off
Header set Cache-Control “private, no-cache, no-store, proxy-revalidate, no-transform”
Header set Pragma “no-cache”
[/FilesMatch]
[IfModule mod_deflate.c]
AddOutPutFilterByType DEFLATE text/html text/plain text/xml
[IfModule mod_setenvif.c]
# Netscape 4.x hat einige Probleme…
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 hat noch mehr Probleme
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE gibt sich als Netscape aus, aber es ist in Ordnung
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# HINWEIS: Aufgrund eines Fehlers in mod_setenvif bis Apache 2.0.48
# funktioniert der obige Regex nicht. Sie können die folgende
# Umgehungslösung verwenden, um den gewünschten Effekt zu erzielen
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Komprimieren Sie keine Bilder
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
[/IfModule]
[IfModule mod_headers.c]
# Stellen Sie sicher, dass Proxys nicht den falschen Inhalt liefern
Header append Vary User-Agent env=!dont-vary
[/IfModule]
[/IfModule]
Danke, ich habe diesen Code getestet und er hat perfekt funktioniert
+1 für André von Kugland, SVG zur MIME-Liste hinzufügen.
Stellen Sie es auch in die Apache httpd.conf-Datei, wenn Sie die Kontrolle darüber haben. .htaccess-Dateien können eine Website um etwa 5 % verlangsamen (habe ich irgendwo gelesen, googeln Sie es). Jeder Aufruf der Website für CSS, Bilder oder HTML erfordert, dass Apache die .htaccess liest, bevor er auf die Anfrage reagiert. Wenn es in httpd.conf steht, wird es einmal beim Start von Apache gelesen.
Unsere SEO-Pakete sind preiswert und bieten jede Aktivität
benötigt, um hohe Suchmaschinenrankings zu erzielen. Aber etwas Neues zu entdecken, das bessere Ergebnisse liefert, wird lohnender sein.
SEO auf Google Zebra konzentriert sich auf die Erstellung nützlicher, transparenter und einzigartiger Daten, aber
die Hauptänderung wird die Macht des sozialen Signals sein.
Ich muss meinen Code mit Gzip-Komprimierung mit ASP.NET 3.5 komprimieren… gibt es eine Lösung???
Ich habe den folgenden Code verwendet, aber er funktioniert nicht auf einer Online-Website… er funktioniert auf dem lokalen IIS
<system.webServer>
</system.webServer>
Bitte überprüfen Sie den folgenden Code für die obige Frage
Die folgende Arbeit hat für mich funktioniert
BEGIN GZIP
mod_gzip compression (legacy, Apache 1.3)
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|xml|txt|css|js)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.gzip.
END GZIP
DEFLATE-Komprimierung
Setzen Sie die Komprimierung für: html,txt,xml,js,css
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
Deaktivieren Sie die Komprimierung für fehlerhafte Browser
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Setzen Sie Header-Informationen für Proxys
Header append Vary User-Agent
END DEFLATE
Ich bin gerade verloren. Brauche Hilfe. Wir werden auf einem gemeinsamen Server gehostet, und es scheint, dass der Dienstleister die Serverkonfigurationen nicht ändern kann. Und die Komprimierung ist nicht aktiviert. Was können wir jetzt tun?
Wir haben hauptsächlich HTML-Seiten und die Website ist mit Asp.Net erstellt. Wie komprimiere ich die HTML-Seiten mit Gzip?
Bitte helfen Sie.
Hallo,
Ich habe getan, was ich tun sollte, aber nach der Überprüfung bei gzipWTF.com scheint nichts komprimiert zu werden.
Irgendeine Idee, warum? Ich habe keine anderen Probleme mit dem Code, der in .htaccess liegt, er tut einfach nichts.
Ich erhalte das Ergebnis für die Aktivierung der Gzip- und Caching-Methode, aber ich kann das Ergebnis auf der Serverseite (Apache 2.2) nicht erzielen, bitte helfen Sie mir.
funktioniert Gzip in .htaccess auf einem Shared Server? Mein Anbieter sagte mir, mein Server unterstützt keine Komprimierung. Entschuldigen Sie, Anfängerfrage.
Uhh text/text? Sind Sie sicher? Ich kann diesen MIME-Typ nicht in der Wikipedia-Liste gängiger Medientypen finden.
Neben der Verwendung von Gzip zum Komprimieren Ihrer CSS-Dateien können Sie auch viele der heute verfügbaren Online-Kompressoren (wie diesen oder diesen) verwenden, um sie noch weiter zu komprimieren. Manchmal kann ich ihn auf 90 %+ der ursprünglichen Größe (mit Gzip) reduzieren.
Ich habe sowohl Gzip als auch mod_deflate ausprobiert und beide haben ein KRITISCHES Skript, das ich in einem Unterverzeichnis habe, beschädigt. Also lautet die Frage, ob solche Formen der Komprimierung aktiviert und dann auf Verzeichnisebene deaktiviert werden können. So wird alles komprimiert außer dem Unterverzeichnis.
Eine Warnung an alle, die die Komprimierung aktivieren: Testen Sie danach unbedingt alle Ihre Skripte.
Danke!
Sollte es nicht „.htaccess“ statt „.haccess“ heißen, oder habe ich etwas übersehen?
Guter Fang! Habe diesen Tippfehler gerade behoben…
Vielen Dank für Ihr Tutorial,
Ich habe das Gleiche auf einem Server gemacht, wo es absolut einwandfrei funktioniert,
Aber auf einem anderen Server funktioniert es nicht!
Hat das etwas mit der PHP-, Apache-Version oder Ähnlichem zu tun?
Danke! Hat für mich funktioniert! :)
Ich benutze es auf meiner Website (سئو). Aber wenn ich bei gtmetrix nachschaue, wird es nicht gefunden. Was ist der Grund?
Ich kann .htaccess nicht verwenden. Aber ich möchte Gzip aktivieren
Wie kann ich Gzip aktivieren? Ich kann HTML verwenden. Aber wenn ich eine Datei eingebe, kann jeder sie auf meiner Website lesen.
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.gzip.
‚
Ich möchte es benutzen, aber die HTML-Methode
Nur ein Tippfehler-Feedback, nicht zum Posten
Text: Dies ist seine Version
Fehler: its
Korrektur: its
Danke!
Ich habe die SVG-Komprimierung mit dieser Methode aktiviert und die SVG-Assets werden jetzt nicht mehr geladen. Irgendwelche Ideen, warum?
Dieser Artikel ist 10 Jahre alt. Ich kämpfe immer noch darum, die Antwort zu finden, um das BREACH-Angriffsrisiko bei aktivierter Gzip-Funktion zu lösen. VPS- und Shared-Hosting-Produkte unterstützen standardmäßig kein Brotli, daher bin ich neugierig, was die Antwort ist. CloudFlare ist gut für die Komprimierung, aber langsam bei DNS. Die einzige Antwort, die ich sehe, ist monetär. :-(
Weil es in komprimierter Version funktioniert
http.couchdb.svg.mime⁸.gzip svgz.cherry tree.svg.sudo nano
Der Code funktioniert nicht bei den JavaScript- oder CSS-Dateien. Ich habe eine ganze Reihe verschiedener Setups ausprobiert, und derselbe Code funktioniert bei anderen Websites einwandfrei. Ich habe den Host kontaktiert, und sie sagten, dass die Versionsnummern der Datei (Endung variiert) bedeuten, dass diese Dateien nicht gegzipT werden. Ich bin mir einfach nicht sicher, wie ich dieses Problem umgehen kann. Irgendwelche Ratschläge?