Mailinglisten-Archive |
Lutz Zetzsche wrote:
> Hallo Norbert,
>
> Am Mittwoch, 4. Juli 2007 schrieb Norbert Pfeiffer:
>> also mal unter Vorbehalt:
>> In HTTP 1.1 wurde fest eingefuehrt, Seiten haeppchenweise
>> auszuliefern. IMHO sind die Zahlen die Laenge der einzelnen Haeppchen
>> in Hex oder Dec.
>
> an den Zusammenhang hatte ich auch schon einmal gedacht. In dem Fall
> stellt sich mir die Frage, wie ich dann die Datei korrekt auslese. :-)
> Wie finde ich diese Angaben, um sie entfernen zu können? Die
> vierstelligen alphanumerischen Zeichenkombinationen stehen ja immer
> separat in einer Zeile, also mit Zeilenumbruch davor und dahinter. Aber
> Zeilenumbrüche finden sich ja überall in der Datei...
Warum in der HTTP-Spezifikation nachgucken, wenn man auch per
trial&error zum Ziel kommt? Wenn jede dieser Hexzahlen die Länge eines
Blockes beschreibt musst du dir nur die erste Hex-Zahl einlesen, die
Länge lesen und erwarten, dass du nach dieser Länge die nächste Hex-zahl
findest. Jetzt musst du dir nurnoch überlegen, wie genau diese Hexzahl
zusammengehört.
Für den Fall, dass du doch lieber die Spezifikation zur Hand nehmen
möchtest:
19.4.6 Introduction of Transfer-Encoding
HTTP/1.1 introduces the Transfer-Encoding header field (section
14.41). Proxies/gateways MUST remove any transfer-coding prior to
forwarding a message via a MIME-compliant protocol.
A process for decoding the "chunked" transfer-coding (section 3.6)
can be represented in pseudo-code as:
length := 0
read chunk-size, chunk-extension (if any) and CRLF
while (chunk-size > 0) {
read chunk-data and CRLF
append chunk-data to entity-body
length := length + chunk-size
read chunk-size and CRLF
}
read entity-header
while (entity-header not empty) {
append entity-header to existing header fields
read entity-header
}
Content-Length := length
Remove "chunked" from Transfer-Encoding
Die gesamte RFC findet sich hier: http://www.ietf.org/rfc/rfc2616.txt
>
> Viele Grüße
> Lutz
Yannik
php::bar PHP Wiki - Listenarchive