Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] ETag + Content-Encoding (https://www.delphipraxis.net/113925-%5Bphp%5D-etag-content-encoding.html)

Dunedain 16. Mai 2008 19:12


[PHP] ETag + Content-Encoding
 
Hallo,

hab mal ne kleine Verständnisfrage...
Ich habe eine dynamische Seite, welche ich, je nach dem, ob der Client Kompression unterstützt, komprimiert oder im plain-text ausliefere. Aus welchen Daten muss ich im Falle der komprimierten Auslieferung den ETag header bilden? Dem komprimierten oder dem unkomprimierten Inhalt?

google war leider nicht besonders hilfreich, da ich beide Lösungen gefunden habe...

Valle 11. Jun 2008 22:05

Re: [PHP] ETag + Content-Encoding
 
Wenn du mit PHP eine Seite komprimiert ausgeben willst, dann reicht folgendes am Anfang deines Scriptes. Diese Zeile alleine reicht wirklich, sie überprüft auch, ob der Client Kompression unterstützt und setzt alle notwendigen Header.

Code:
ob_start("ob_gzhandler");
Nur diese eine Zeile! ;-)

Mit freundlichen Grüßen,

Valle

himitsu 12. Jun 2008 11:14

Re: [PHP] ETag + Content-Encoding
 
es ist egal woraus du den ETag bildest, da dises keine Quersumme (Hash) der Datei darstellt, sondern und irgendeinen Vergleichswert.

wenn der Browser dieses eTag auswertet, dann läd er nur bei einem geänderten Wert (egal woraus der gebildet wird) die Seite neu ... vergleichen mit der Empfangen seitet tut der Browser nicht.



Also nimm die Daten, wo du leichter rankommst

> wenn du die Datei erst zwischenspeicherst und alles zusammen versendest, dann kannst du die komprimierten Daten verwenden (praktisch wenn man den Header erst erzeugt, kurz bevor man die Daten raussendet

> wenn die komprimierten Daten stückchenweise versendet werden, dann kommt man wohl mit den unkomprimierten Daten besser.

PS: ich hatte es mir einfacher gemacht und den ETag nicht aus den Daten, sondern aus der Zeit erstellt (z.B. wann )die daten auf dem Datenträger, oder in der DB gespeichert wurden ... ersparrt einem viel unnötiges gerechne :angel2:



@Valle: klar reicht das, aber ich hab mir auch selber die Komprimierung erstellt und dann (mal im gegensatz zu bestimmt 99% der PHP-Ausgaben) einen schönen Header (z.B. mit ETag und Co.) erstellt ... das mögen z.B. die Cachen in ProxyServern und im Browser viel lieber und ersparren mir so etwas an trafic :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz