Sönke Tesch: "HTML Kompression ?" und "HTML Code zu PHP ?"

Beitrag lesen

aber bombadiert mich bitte nicht mit absoluten Fachbegriffen, hab also nur Grundkenntniss von hier und kein Profiwissen.

Ich habe eine HTML Datei mit den Jahrescharts von 1960 an, die aufgrund der Textmasse leider 730 KB umfasst und für 56K oder ISDN Benutzer ist das nicht gerade optimal, zum Download anbieten möchte ich die aber auch nicht unbedingt, meine Frage ist ob man die irgendwie komprimieren kann,

Nachdem man Dich nun doch mit Fachbegriffen und Serverinterna bombardiert hat, hier die einfache Lösung für den Apache Webserver. Selbes Funktionsprinzip, aber zu Fuß durchgeführt:

Du besorgst Dir für Deinen Rechner ein Programm namens gzip (_nicht_ WinZip, das ist was anderes). Eine passende Version findest Du sicher unter http://www.gzip.org/, etwas weiter unten im Abschnitt "Executables".

Mit gzip lässt Du Deine HTML-Seite zusammenschrumpfen, in etwa mit folgendem Aufruf:

gzip -9 meine-seite.html

Das "-9" sorgt für die bestmögliche Kompression.

gzip ersetzt meine-seite.html durch eine Datei meine-seite.html.gz, welche Du auf Deinen Webserver kopierst. Daneben legst Du die Originaldatei, und zwar unter dem Namen meine-seite.html.html (ja, doppelte Endung).

Lege im selben Verzeichnis weiterhin eine Datei namens .htaccess ab (den Punkt am Anfang nicht vergessen). Der Inhalt sieht folgendermaßen aus:

options +multiviews

Bekommst Du anschließend beim Aufruf irgendeiner Datei aus diesem Verzeichnis keine Fehlermeldung, wäre alles erledigt.

Zwischen Browser und Server passiert jetzt folgendes:
Beim Aufruf der Adresse /meine-seite.html stellt der Server fest, daß meine-seite.html nicht existiert. Statt sofort einen Fehler auszuspucken, schaut er dank des "multiviews" erstmal im Verzeichnis nach, ob dort Dateien existieren, die mit meine-seite.html _beginnen_. Er findet zwei: meine-seite.html.html und meine-seite.html.gz. Anhand der Endungen erkennt er, daß es sich einmal um eine normale HTML-Datei (.html.html) und einmal um eine gzip-komprimierte HTML-Datei (.html.gz) handelt. Da der Browser mitgeteilt hat, ob er gzip versteht oder nicht, wählt der Server die passende (kleinste) Datei aus und schickt sie als meine-seite.html. Funktioniert vollautomatisch und mit so ziemlich jedem halbwegs neuen Browser.
Beachte aber bitte, daß Du _nicht_ auf meine-seite.html.html oder meine-seite.html.gz verlinkst, sondern auf meine-seite.html, andernfalls funktioniert die Automatik nicht!

Bekommst Du allerdings eine Fehlermeldung à la "internal server error", ist diese Funktion für Dich nicht freigeschaltet. Du kannst entweder Deinen Hoster um die Freischaltung bitten oder aber Du verlinkst die beiden Dateien direkt.
Die gzip-Komprimierung ist ein universelles Format und daher die eindeutig beste Lösung (auch Winzip & Co. können standardmäßig damit umgehen). Als Alternative wäre noch .zip denkbar, aber vergesse bitte alles andere, solange Du nicht betriebssystemspezifische Sachen anbietest.

Gruß,
  soenk.e