phpbar.de logo

Mailinglisten-Archive

[php] output GZIP-encoding

[php] output GZIP-encoding

Kai Meder php_(at)_phpcenter.de
Tue, 16 Jul 2002 19:26:59 +0200


> > ich möchte den cache bzw. den output komprimiert ausgeben,
>
> Was genau möchtest Du ausgeben? Soll der Output vom Client automatisch
> dekomprimiert werden oder dient er als Datei zum Abspeichern?
ich will, bevor ich den cache ausgebe, diesen nochmal für den client mit
gz codieren ...
auf gz_handler habe ich keine lust, wills selber probieren,
dann ist das ganze auch bisschen anpassbarer ...

> > 1.) brauche ich den content-length header
> > oder ist der seit einer der neueren php-versionen unnötig geworden ?
>
> Content-Length ist davon unabhängig und wird nicht benötigt. Falls der
> Output vom Client automatisch entkomprimiert werden soll, empfiehlt
> sich das Setzen von zlib.output_compression in php.ini (geht nicht via
> ini_set im Skript), das kümmert sich um die passenden
> Content-Encoding-Header und macht das auch nur, wenn der Browser
> behauptet, daß er es kann (via Accept-Encoding Header). Außerdem
> erfordert es sonst keine Anpassungen.
wunderbar, mit accept-encoding frage ich das auch ab ...
aber wie gesagt, keine lust auf den gzhandler ;)

> > 2.) muss ich noch den gzip-header header ausgeben
> > oder ist der auch unnötig geworden ?
> > ( \x1f\x8b\x08\x00\x00\x00\x00\x00 )
>
> Kommt wieder darauf an, was Du damit vorhast ;-).
>
> Willst Du den Output z.B. mit einem eigenen PHP-Skript und den
> zlib-Funktionen weiterverarbeiten, ist das nicht nötig, soll aber ein
> "richtiges" .gz-File rauskommen, braucht man den Header. Oder man
> verwendet gzencode(), das ergänzt schon von alleine den Header.

ich habe das so verstanden, dass der output von gzencode und gzcompress
grundlegendend verschieden ist, also nicht nur von den headern
unterschiedlich,
sondern auch vom algorithmus, etc.. ?
ich will eigentlich nru den gz-compressed output des caches an den
client senden ...

> > 3.) was ist mit der checksum und der grösse ?
> > muss ich die nachwievor mit pack('V' , crc32($data))
> > und pack('V' , strlen($data)) an den output mit dranhängen ?
>
> gzencode() erledigt auch das, ansonsten Handarbeit, falls das benötigt
> wird.
hm, wenn gzencode das gleiche wie gzcompress sein sollte, nur
mit zusätzlichen headern, dann bietet sich das natürlich an ...
sicher, dass gzencode das miterledigt ?

> > fragen über fragen ... steht vll irgendwo in den change-logs
> > der php-versionen was an den gz-algorithmen geändert wurde ?
> > (habe da irgendwie nichts gefunden)
>
> Was für eine Änderung suchst Du denn? Die eigentlichen Algorithmen
> wurden nicht geändert, diese verwenden schon immer diese der
> zlib-Library.
ich habe vor dem posten dieser mail nochmal exzessiv newsgroups
und websites gegoogelt... u.a. habe ich paar bug-reports
von bugs.php.net gefunden, da war IIRC ein report dass doch manches
in der zlib durcheinander geschmissen wurde ?!

> > noch eine frage, ich verstehe nicht ganz den unterschied zwischen
> > FORCE_GZIP und FORCE_DEFLATE auf
>
> Das sind zwei unterschiedliche Komprimierungsarten der zlib-Library,
> für Details vgl. RFC 1950 und 1951.
danke, gleich mal lesen ...

> > oder mir irgendwelche uris mit genauen infos über diesen
> > gz-quatsch geben ...
>
> Viel findet man auch auf der zlib-Homepage (PHP-unabhängig) unter
> http://www.gzip.org/zlib/.
nochmal danke

kai


php::bar PHP Wiki   -   Listenarchive