Der Martin: zipped html

Beitrag lesen

Hallo,

ich bin sicher ob der Betreff richtig ist.

weitgehend schon. ;-)

Was ist suche ist folgendes: Der Server überträgt gezippte HTML-Files. Der Browser empfängt sie und bietet sie nicht zum Download an, sondern packt sie aus und stellt sie dar.

Ja. Das tut so ziemlich jeder gängige Browser, wenn der Server ihm das anbietet.

Ich schreibe an einem Embeded-Webserver dem der Platz ausgeht. Eine elegante Möglichkeit wäre die Files vorher zu Zippen und dann gezippt zu übertragen.

Gute Idee, im Prinzip. Für größtmögliche Kompatibilität müsstest du die Daten aber sowohl komprimiert als auch unkomprimiert ausliefern können, je nachdem was der Browser im HTTP-Header Accept-Encoding zu verstehen vorgibt. Wenn gzip dabei ist, sieht's gut aus.
Ich glaube zwar, dass man das heute fast schon voraussetzen kann; ein Restrisiko bleibt aber, dass man bestimmte Clients ausschließt. Für deine Anwendung mag das akzeptabel sein.

Es sind aber noch ein paar Sachen unklar. Welche Endung müssen diese Files haben? Müssen die Links die auf diese gezippten Files verweisen ebenfalls diese Endung haben? Welchen Mime-Type braucht diese Art der Übertragung?

Am Namen der Ressourcen und am MIME-Typ ändert sich absolut NICHTS. Der Browser fragt immer noch nach /any/document/to/display, ohne vorher zu wissen was ihn erwartet, und bekommt es dann als text/html ausgeliefert wie gewohnt.
Wenn im Accept-Encoding-Header des Requests gzip vorkommt, darf der Server die Daten gzip-komprimiert senden; wenn er das tut, muss er den Header "Content-Encodig: gzip" im Resonse hinzufügen. Dann weiß der Client Bescheid, dass der Datenblock gzip-komprimiert ist.
Mehr dazu weiß die HTTP-Spezifikation zu berichten.

Geht das auch für js und gif?

An sich schon - nur bei Bildern ist es meist wenig hilfreich. Grafikformate wie GIF oder JPEG sind ja per se schon komprimiert, durch einen weiteren zip-Versuch gewinnt man meist nichts mehr (oder nicht so viel, dass sich der Aufwand lohnt).
Für rein textbasierte Ressourcen (HTML, CSS, JS) ist das Verfahren aber optimal.

So long,
 Martin

--
"Life! Don't talk to me about life!"
  (Marvin, the paranoid android in Douglas Adams' "The Hitchhiker's Guide To The Galaxy")