Philipp Hasenfratz: fsocketopen() Header und Inhalt trennen

Beitrag lesen

Halihallo Tom

Habe hier mitgelesen und frage zur Sicherheit nochmals nach. Muss man bei HTTP/1.1 also nun immer dieses "Längenbyte" beachten

Nur bei der Transfer-Encoding: chunked. Ein Beispiel wie dort das
ganze Entity wiederhergestellt wird steht als Pseudo unter:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.4.6

Aber: Wie im letzten Post zittiert: Jede HTTP/1.1 Application MUSS
"chunked" transfer-coding empfangen und dekodieren müssen. Falls
also ein entsprechender Header in der Response steht, muss dein
Programm auch damit umgehen können, oder aber du verwendest HTTP/1.0.

und wie groß kann so ein Brocken werden? Oder woraus erkennt men diesen Sendemodus?

Erkennen kann man ihn über den entsprechenden Header in der Response
("Transfer-Encoding: chunked"). Die Länge ist in der RFC nicht
beschränkt: RFC 2616, 14.39:
         Note: HTTP/1.1 does not define any means to limit the size
         of a chunked response such that a client can be assured of
         buffering the entire response.

Werden da dann nur noch Datenbrocken gesendet oder kommt jedes Mal ein vollständiger Header davor?

Nun, normalerweise nicht. Es gibt die TE-"Option" 'trailer', welche
IMHO bedeutet, dass jedem chunk ein Header vorangeht.

... soweit ich die RFC jetzt gelesen habe...

Viele Grüsse

Philipp