ydHTTP: Keep-Alive
So jetzt hab ichs endlich bei der HTTP-Klasse mit den persistenten Keep-Alive-Verbindungen auf die Reihe gebracht.
Bisher wurde fgets() immer solange aufgerufen bis feof() true lieferte. Das führte bei den Keep-Alive-Verbindung zu einem Timeout und damit zum Abbruch der Verbindung durch den Server. Nun stellt die Leseroutine mit Hilfe von Content-Length bzw. Chunked-Encoded fest, ob die Seite schon komplett eingelesen wurde und erkennt so selbst, ob das Ende der Seite erreicht wurde. Und schon funktioniert es auch mit mehreren Requests über eine einmalig hergestellte Verbindung.
Für Seiten mit fehlerhaften Seitenlängenangaben und Seiten sowohl ohne Content-Length als auch ohne Chunked, die sich aber trotzdem als Keep Alive übertragbar ausgeben, müßten dann noch Workarounds eingebaut werden.
Als nächstes noch einmal RFC 2068 (HTTP 1.1) in Ruhe durchlesen und dann die HTTP-Klasse aufräumen.
