Dirk: HTML-Dateien komprimiert?

Hallo.

Ich habe bei Forumanbieter gelesen, daß die neueren Browser (ab IE 5.5 aufwärts) die Unterstützung von komprimiertem HTML unterstützen. Und eben dieses Feature unterstützt das Forum. Folgendes ist in der Feature-Liste zu lesen:

Automatische Erkennung der Kompressionsunterstützung des Browsers und ca. 90% Komprimierung der Daten VOR dem Transfer. Also 10-MAL schneller als andere!*
.
.
.
* Hast du das schon gewusst? Jeder einigermaßen neue Browser unterstützt den Transfer von gepackten HTML-Seiten! Dieses Forum erkennt, ob der Browser des Users das unterstützt und schickt die Daten dann gepackt! Stell dir vor, deine User fordern eine HTML-Seite an, die 50 KB hat, und es brauchen nur 5 KB übertragen zu werden! Probier es selber aus und du wirst es sehen! :)

Kann mir jemand sagen wie das gemacht wird? Was brauch ich dafür, wenn ich so etwas auch nutzen möchte?

Gruss
Dirk

  1. Hi Dirk,

    Kann mir jemand sagen wie das gemacht wird?
    Was brauch ich dafür, wenn ich so etwas auch nutzen möchte?

    Einen Webserver, der darauf reagiert, daß der Client ihm im HTTP-Header
    "Content-encoding:" eine Liste von unterstützten Codierungen schickt,
    welche er zu decodieren in der Lage zu sein behauptet (das letzte Wort
    dieser Aussage ist das Problem dabei - einige lügen nämlich, besonders
    Netscape 4, der aber gleich besonders heftig).

    Was genau Dein Client so alles sendet, kannst Du Dir ansehen:
    http://www.schroepl.net/cgi-bin/http_trace.pl

    Konkret für Apache gibt es ein Modul mod_gzip, welches man einfach dazu
    laden kann:
    http://www.ehyperspace.com/products/mod_gzip.html

    Konfigurieren muß man das natürlich auch noch:
    http://www.schroepl.net/projekte/mod_gzip/_de/config.shtml

    Viele Grüße
          Michael
    (persönlicher mod_gzip-Rekord einer real existierenden Seite:
     Faktor 24.57 - wenn der HTML-Code entsprechend schlecht ist ... ;-)

  2. Huhu Dirk

    hier gibt es einen Artikel dazu

    http://www.phpbuilder.com/columns/argerich20010125.php3

    Viele Grüße

    lulu

    1. Hi lulu,

      hier gibt es einen Artikel dazu
      http://www.phpbuilder.com/columns/argerich20010125.php3

      ... dessen wesentliche Aussage allerdings falsch ist.

      Auch PHP-Ausgaben kann man mit mod_gzip komprimieren - es ist nur ein
      bißchen tricky, ihm klar zu machen, wie mod_php intern an den HTTP-
      requests herum bastelt, damit mod_gzip trotzdem noch erkennt, was es
      zu tun hat. Da spielen Details wie die Reihenfolge, in welcher die
      Apache-Module geladen werden, eine Rolle ...

      Es gibt eine Mailing-Liste vom mod_gzip-Autor, wo solche Fragen
      behandelt werden.

      Viele Grüße
            Michael

  3. Ich habe bei Forumanbieter gelesen, daß die neueren Browser (ab IE 5.5 aufwärts) die Unterstützung von komprimiertem HTML unterstützen.

    So neu ist Netscape 4 nun auch nicht :)

    * Hast du das schon gewusst? Jeder einigermaßen neue Browser unterstützt den Transfer von gepackten HTML-Seiten! Dieses Forum erkennt, ob der Browser des Users das unterstützt und schickt die Daten dann gepackt! Stell dir vor, deine User fordern eine HTML-Seite an, die 50 KB hat, und es brauchen nur 5 KB übertragen zu werden! Probier es selber aus und du wirst es sehen! :)

    Wie schön, da kann ich ja malwieder einen Link unterbringen :)

    http://kino-fahrplan.de/programm/film.htm.gzip: 4695 kByte.
    http://kino-fahrplan.de/programm/film.htm: 76122 kByte

    Automatischer Versand der passenden Datei über http://kino-fahrplan.de/programm/film.

    Kann mir jemand sagen wie das gemacht wird? Was brauch ich dafür, wenn ich so etwas auch nutzen möchte?

    Falls dein Webserver auf den Namen Apache hört:

    Zugriff auf den Webserver, um ihm das Modul mod_gzip unterzujubeln (siehe andere Antwort).

    oder

    1. Die Möglichkeit, .htaccess-Dateien zu benutzen und darin "Options Multiviews" zu setzen.
    2. Ein kleines Programm namens gzip.

    Alles, was du dann nur noch machen musst, ist eine zu komprimierende Datei x.html zu nehmen, sie durch gzip zu jagen, wobei eine zweite Datei x.html.gz entsteht, und beide auf den Server zu legen.

    Alle Verweise auf diese Datei müssen jetzt ohne Endung angegeben werden, also x statt x.html. Der Webserver wird dann ("Options Multiviews" sei dank), sobald jemand die Seite x aufruft, das Verzeichnis durchsuchen (er findet x.html und x.html.gz) und entsprechend der Fähigkeiten des Browsers die jeweils günstigste (hier: kleinste) ausliefern.

    Gruß,
      soenk.e

    1. Hi Sönke,

      Alle Verweise auf diese Datei müssen jetzt ohne Endung angegeben werden,
      also x statt x.html.

      Nicht unbedingt.

      Der Webserver wird dann ("Options Multiviews" sei dank), sobald jemand
      die Seite x aufruft, das Verzeichnis durchsuchen (er findet x.html und
      x.html.gz) und entsprechend der Fähigkeiten des Browsers die jeweils
      günstigste (hier: kleinste) ausliefern.

      Schau Dir mal das Apache-Handbuch selbst an, also die Dateien desselben.
      Diese werden ja über MultiViews adressiert (mindestens seit 1.3.19, es
      könnte auch schon 1.3.17 gewesen sein, 1.3.14 jedenfalls noch nicht).

      Die Hauptdatei wird sinnvollerweise über den normalen DirectoryIndex-
      Mechanismus angesprochen, also auf "index.html" gemapped.
      Über diesen URL soll sie auch ansprechbar sein.
      Sie soll aber per Content Negotiation dynamisch in der richtigen Sprache
      ausgeliefert werden.

      Wie geht das?

      Indem man _zusätzlich_ an den normalen Namen der Datei eine _weitere_
      Endung anhängt, welche die zu verhandelnde Komponente ausdrückt.
      Im Falle der Sprache wäre das eben der ISO-Code (?) dieser Sprache.

      Die Dateien im Apache-Handbuch-Verzeichnis heißen also "index.html.de"
      oder "index.html.en" oder wie auch immer.

      Und die Default-Datei. welche verwendet werden soll, wenn der Client
      überhaupt keine (passende) Sprache angegeben hat, heißt ...

      (Trommelwirbel ...)

      ... "index.html.html". Sachen gibt's ...

      Viele Grüße
            Michael

      1. Alle Verweise auf diese Datei müssen jetzt ohne Endung angegeben werden,
        also x statt x.html.

        Nicht unbedingt.

        Nicht unbedingt, nein. Aber ich wollte nicht den ganzen Content-Negotiation-Sack auf einmal ausschütten :)

        Schau Dir mal das Apache-Handbuch selbst an, also die Dateien

        Die Hauptdatei wird sinnvollerweise über den normalen DirectoryIndex-
        Mechanismus angesprochen, also auf "index.html" gemapped.
        Über diesen URL soll sie auch ansprechbar sein.

        Und die Default-Datei. welche verwendet werden soll, wenn der Client
        überhaupt keine (passende) Sprache angegeben hat, heißt ...

        (Trommelwirbel ...)

        Raunen in der Menge :)

        ... "index.html.html". Sachen gibt's ...

        Oha. Hätte ich diesen doppelten Rittberger früher gekannt, hätte ich mir viel Haareraufen sparen können..

        Gruß,
          soenk.e

  4. Hi hi,

    die Kompression kannst du beim Internet Information Server unter Windows 2000 auch nutzen. Dafür gibt es ein Häkchen in den Haupteigenschaften des WWW-Dienstes.

    Einzig der Navigator 4 scheint Probleme damit zu haben, aber das wäre ja nur eines von unendlich vielen Problemen.

    MfG Mathias