Frage

Sie wissen vielleicht, dass HTML verwandte Dateiformate komprimiert mit gzip-Kompression, Server-Seite (von mod_gzip auf Apache-Server) und wird durch kompatible Browser dekomprimiert. ( "Content encoding")

Ist dies nur Arbeit für HTML / XML-Dateien? Können sagen, meine PHP / Perl-Datei ein paar einfache Komma getrennte Daten erzeugt, und sendet diese an den Browser, wird es standardmäßig verschlüsselt werden?

Was Plattformen wie Silverlight oder Flash, wenn sie solche Daten herunterladen wird es vom Browser / runtime automatisch komprimiert / dekomprimiert werden? Gibt es eine Möglichkeit, dies zu testen?

War es hilfreich?

Lösung

  

Ist dies nur Arbeit für HTML / XML   Dateien?

Nein: es recht häufig für CSS und JS-Dateien verwendet wird, zum Beispiel - wie jene, gehören zu den größten Sache, dass Websites (außer Bilder) gemacht sind, weil von JS Frameworks und Full-JS-Anwendungen, stellt sie ein großer Gewinn!

Eigentlich jedes textbasiertes Format kann sehr gut komprimiert werden (auf dem gegenüberliegenden, kann keine Bilder, zum Beispiel, wie sie in der Regel bereits komprimiert sind) ; manchmal kehrten JSON-Daten von Ajax-Anfragen zu komprimiert werden - es Textdaten sind, afterall; -)

  

Hier können meine PHP / Perl-Datei sagen erzeugt   einige einfache Komma getrennte Daten und   sein sendet diese, wird es an den Browser   codiert standardmäßig?

Es ist eine Frage der Konfiguration: Wenn Sie Ihren Server so konfigurieren, dass die Art von Inhalt zu komprimieren, es wird wahrscheinlich :-) komprimiert werden
(Wenn der Browser sagt es akzeptiert gzip-kodierte Daten)


Hier ist ein Beispiel der Konfiguration für Apache 2 (mit mod_deflate), die ich auf meinem Blog verwenden:

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

Hier möchte ich HTML / XML / CSS / JS te komprimiert werden.

Und hier ist das gleiche, plus / minus ein paar Konfigurationsoptionen habe ich einmal, unter Apache 1 (mod_gzip):

<IfModule mod_gzip.c>
    mod_gzip_on                   Yes
    mod_gzip_can_negotiate        Yes

    mod_gzip_minimum_file_size    256
    mod_gzip_maximum_file_size    500000

    mod_gzip_dechunk              Yes

    mod_gzip_item_include         file       \.css$
    mod_gzip_item_include         file       \.html$
    mod_gzip_item_include         file       \.txt$
    mod_gzip_item_include         file       \.js$
    mod_gzip_item_include         mime       text/html

    mod_gzip_item_exclude         mime       ^image/
</IfModule>

Dinge, die hier bemerkt werden können, sind, dass ich (der Gewinn wäre nicht ganz wichtig) nicht zu klein wollen oder zu groß (würde zu viel CPU essen zu komprimieren) Dateien komprimiert werden; und ich möchte css / html / txt / js-Dateien komprimiert werden, aber keine Bilder.


Wenn Sie Sie durch Komma getrennte Daten wollen die gleiche Art und Weise komprimiert werden, müssen Sie hinzufügen, entweder es ist Content-Type oder es ist Erweiterung der Konfiguration des Webservers, gzip-Kompression für sie zu aktivieren.

  

Gibt es eine Möglichkeit, dies zu testen?

Für den Inhalt direkt an den Browser zurückgegeben, Firefox-Erweiterungen Firebug oder Livehttpheaders a sind must-have.

Für Inhalte, die nicht über die Standard-Kommunikation über den Browser geht, ist es schwieriger sein könnte; am Ende, können Sie so etwas wie Wireshark zu „schnuppern“, was durch wird am Ende müssen mit wirklich los die Rohre ... Viel Glück dabei!

  

Was Plattformen wie Silverlight oder Flash,   wenn sie solche Daten herunterladen wird es komprimiert / dekomprimiert werden   vom Browser / Laufzeit automatisch?

Ihre Frage zu Silverlight und Flash-beantworten, wenn sie einen Accept-Header senden, die angibt sie komprimierte Inhalte zu unterstützen, wird Apache mod_deflate oder mod_gzip verwenden. Wenn sie nicht Komprimierung unterstützt werden sie nicht den Header senden. Es wird „einfach funktionieren.“ - Nate

Andere Tipps

ich denke, Apache mod_deflate ist häufiger als mod_gzip, weil es integriert und macht das gleiche. Sehen Sie in der Dokumentation für mod_deflate (oben verlinkten), und Sie werden sehen, dass es einfach ist, zu bestimmen, welche Dateitypen zu komprimieren, basierend auf ihren MIME-Typen. Im Allgemeinen ist es wert Komprimieren HTML, CSS, XML und JavaScript. Die Bilder werden bereits komprimiert, so dass sie nicht von der Komprimierung profitieren.

Der Browser sendet einen „Accept-Encoding“ Header mit der Art der Kompression, die es weiß, wie man zu verstehen. Der Server sucht in diesem, zusammen mit dem User-Agent und entscheidet, wie das Ergebnis zu kodieren. Einige Browser liegen über das, was sie verstehen können, so ist dies viel komplexer als nur die Suche nach „deflate“ in der Kopfzeile.

Technisch jede HTTP / 2xx Antwort mit Inhalt kann Inhalte-codiert sein auf alle gültigen Inhalt Codierungen mit (gzip, zlib, abzulassen, etc.), aber es ist verschwenderisch Kompression auf gemeinsame Bildtypen anzuwenden, da es in der Praxis auch tatsächlich macht sie größer ist.

Sie können auf jeden Fall die Antwort von dynamischen PHP-Seiten komprimieren. Die einfachste Methode ist hinzuzufügen:

<?php ob_start("ob_gzhandler"); ?>  

zu Beginn jeder PHP-Seite. Es ist besser, es durch die PHP-Konfiguration, natürlich einzurichten.

Es gibt viele Testseiten, leicht zu finden mit Google :

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top