Henryk Plötz: Perl-Modul mit der Funktion von mod_gzip

Beitrag lesen

Moin

Blöde Frage, aber: welchen 10-Byte-Vorspann?

Wenn man Daten mit gzip komprimiert, packt es einen Header davor der einige Meta-Informationen, unter anderem zum Beispiel das Modifikationsdatum der Originaldatei oder das verwendete OS enthält. Von den in PHP vorhandenen Funktionen zum Komprimieren, tut nur gzencode() auch so einen Vorspann davortun. Wie ich von Christian weiss, tut Compress::Zlib::compress in Perl so einen Vorspann nicht davor sondern gibt nur die reinen komprimierten Daten.
Daten die mit Content-Encoding: gzip  gesendet werden, müssen aber diesen Vorspann enthalten, sonst wirst du keine Freude daran haben.

Rein empirisch hatte ich angenommen dass der Header immer 10 Bytes lang ist, da sowohl gzencode() von PHP als auch das was mod_gzip produziert 10 Bytes vor den eigentlichen Daten hat (in PHP merkt man das daran, dass man die ersten 10 Bytes von mod_gzip-Ausgaben abschneiden muss, bevor man es durch gzinflate() jagt).

Aber da lesen ja bekanntlich nicht dümmer macht, hab ich grade mal in RFC 1952 reingeschaut und festgestellt, dass diese 10 Bytes nur das absolute Minimum an Header sind. Mehr wirst du aber trotzdem nicht brauchen, nur vorhanden muss er eben sein.

--
Henryk Plötz
Grüße aus Berlin