Tach,
# gibt aus in EINER Response
nein, eine Connection mit zwei Responses.
Programmiertechnisch ist es eine Response, die aus dem Socket gelesen wird. Aus HTTP-Sicht ist es ebenfalls eine Response.
Ein Socket ist wie eine PIPE. Gerne gehen wir das mal für einen Request durch, wir senden Keep-Alive und schalten auf Listen. Was stellen wir fest? Richtig, es dauert ne ganze Weile, bis die Response kommt. Was daran liegt, dass der Server ebenfalls gewartet hat, nämlich darauf, ob noch weitere Requests kommen.
Daher schickt ein Webserver die Response erst dann, wenn nach einer gewissen Zeit (einstellbar) keine weiteren Requests am Server ankommen.
Und jetzt kommt das, was hier vielen nicht klar ist: Wenn ein Webserver eine Response gesendet hat, schließt er die Verbindung. Verbindung offenhalten heißt also aus der Sicht des Webservers: Nicht senden sondern warten.
Und Senden heißt: Das Warten ist beendet, Response senden, Connection: Close.
Gerne schreibe ich das mal be Gelegenheit ewtas ausführlicher auf, ich hab das zwar nicht stuiert aber ih hab mich sehr ausführlich damit befasst und ein praktikables Perl Modul dazu entwickelt.
Aber ich erklärs nicht nochmal jedem Einzelnen hier, bei soviel Ignoranz und arroganz die mir hier entgegenspringt. Echt der Hammer.