Kann mir jemand über diese Inhaltslänge oder Transfer-Encoding sagen: "Chunked" ist ein Muss für HTTP-Anfrage? Ich benutze C++, um einen http-Server zu schreiben.Ist "Content-Length" oder "Chunked Transfer-Encoding" ein Muss für die HTTP-Anfrage?
Die HTTP-Antwort kann close Socket verwenden, um die Länge des Nachrichtentexts zu kennen. Aber wie wäre es mit einer Anfrage?
Ich habe RFC2616 über http 1.1 überprüft, aber ich bin nicht klar genug darüber.
Meine Frage ist, wenn eine HTTP-Anfrage ohne "Content-Length" oder "Chunked Transfer-Encoding" gesendet, wie könnte ich "WSARecv" verwenden, um die Länge des Nachrichtentextes zu kennen, für den Fall, dass ich WSARecv verwende Alle Header und Netstream endet mit "\ r \ n \ r \ n" zufällig, ich bekomme nicht die Länge des Nachrichtentextes. Wenn ich eine WSARecv erneut ausliege, kann es ewig dauern, weil keine Daten mehr vorhanden sind. Wenn ich "WSARecv" nicht mehr ausliege, bekomme ich möglicherweise den Nachrichtentext nicht nach.
Oder vielleicht die "Content-Length" und "Chunked Transfer-Encoding" ist ein Muss für HTTP-Anfrage? Client sollte einen von ihnen setzen, um die Länge der Nachricht zu teilen?
Es gibt nichts "Zufälliges" an der Leerzeile am Ende der Header. Es ist in den HTTP-RFCs angegeben. – EJP
Haben Sie darüber nachgedacht, eine Bibliothek wie libmicrohttp zu benutzen, um die meiste Arbeit für Sie zu erledigen? –