Ich mache eine HTTP-Verbindung zu einem IIS-Webserver und senden eine POST-Anfrage mit den Daten, die mit Transfer-Encoding: chunked codiert sind. Wenn ich dies tun, schließt IIS einfach die Verbindung ohne Fehlermeldung oder Statuscode. Nach dem HTTP 1.1 spec,Warum unterstützt IIS keine Chunked-Transfer-Codierung?
Alle HTTP/1.1 Anwendungen in der Lage sein muss, empfangen und entschlüsseln die „gestückelt“ Transfer-Codierung
so verstehe ich nicht, warum es (a) Handhabung nicht, dass Kodierung und (b) es sendet keinen Statuscode zurück. Wenn ich die Anforderung ändere, die Content-Length anstelle von Transfer-Encoding zu senden, ist die Abfrage erfolgreich, aber das ist nicht immer möglich.
Wenn ich das gleiche gegen Apache versuche, bekomme ich einen "411 Length required" Status und eine Meldung "chunked Transfer-Encoding verboten".
Warum unterstützen diese Server diese Codierung nicht?
Der Client konnte den Server unter anderem durch Senden einer HEAD-Anfrage abfragen.Lesen von RFC 2616, Abschnitt 3.6 besagt, dass der Server eine 501-Antwort senden muss, wenn er einen Header empfängt, der die Übertragung codiert, den er nicht versteht. Abschnitt 3.6.1 besagt, dass alle HTTP 1.1-Anwendungen in der Lage sein müssen, Chunked-Transfer-Coding zu empfangen und zu dekodieren. So scheint es für mich klar zu sein - Client-zu-Server-Kommunikation kann chunked werden. Ein häufiges Szenario ist das Hochladen von Dateien. – Cheeso
Das ursprüngliche Poster erwähnte nicht, welche Version von IIS sie verwenden, aber IIS 7 unterstützt eingehende chunked Daten - ich habe eine C++ - Anwendung, die Anforderungen als Chunked-Daten an IIS 7 ohne Probleme sendet –
Ich denke, Sie sind falsch . Server und Clients sollten chunked unterstützen (das heißt nicht, dass sie das tun). Ihr Argument, dass eine Inkompatibilität eintreten würde, ist nicht gültig, da jeder Client, der http1.1 unterstützt, auch verstehen sollte, wie er mit einem http1.0-Server kommuniziert. Siehe: http://www.jmarshall.com/easy/http/#http1.1s3 und: http://www.atnan.com/2008/8/8/transfer-encoding-chunked-chunky-http und: http : //www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6 (Abschnitt 3.6.1 auch) –