phpbar.de logo

Mailinglisten-Archive

[php] Flush() in Tabellen

[php] Flush() in Tabellen

Stefan Roehrich php_(at)_phpcenter.de
Sun, 12 May 2002 16:11:21 +0200


On 2002-05-12 15:33:10, Jens Benecke wrote:
> > ..TP/1.1-Anfragen alles als chunked encoding; denn mit diesem werden
> > persistente Verbindungen einfach auch bei dynamischen Inhalt, bei dem
> > die Gesamtlänge zu Beginn des Sendens der Daten noch nicht feststeht,
> > möglich.
> Hm... kannst du mir ein Beispiel für so eine Situation geben?

Ganz einfach (und wieder on topic ;-) ) PHP.

Wenn man ein PHP-Skript hat, was u.U. etwas länger braucht, will man
eben nicht warten, bis erst der komplette Output auf dem Server
erzeugt wird und dann das auf einmal zum Client schicken, sondern der
Server kann ja schon beginnen, die Daten zu senden, obwohl das Skript
noch am Arbeiten ist und damit die endgültige Größe der Ausgabe noch
gar nicht feststeht.

Wenn man nun kein chunked transfer encoding hätte, wären keine
persistende Verbindungen zwischen HTTP-Client und -Server möglich;
denn woher sollte der Client wissen, daß jetzt die Daten der ersten
Datei anfangen und er einen neuen Request schicken kann, wenn es ihm
nicht über chunked encoding oder einem Content-Length-Header vor den
Daten gesagt wird. Da aber gerade diese persistenten Verbindungen den
großen Vorteil bringen, daß für mehrere Anfragen (z.B. HTML-Datei und
die zugehörigen Bilder) keine neue Socket-Verbindung zum Server
aufgebaut werden muß, was mit einigem Overhead verbunden ist, lohnt
sich das chunked encoding schon.

Tschüs
  Stefan

-- 
Stefan Röhrich               stefan_(at)_roehri.ch, sr_(at)_linux.de
                                 http://www.roehri.ch/~sr/


php::bar PHP Wiki   -   Listenarchive