Ich versuche, einen HTTP 1.0 (und nur 1.0 für den Moment) Server in C++ zu codieren.HTTP-Versionskonflikt - Server-Antwortcode
Ich habe die HTTP 1.0 Spezifikationen hier gelesen: https://www.w3.org/Protocols/HTTP/1.0/spec.html. Auf Abschnitt 3 "Protokollparameter", Unterabschnitt 3.1 "HTTP-Version" habe ich nichts gefunden, wenn ein Client eine andere Version vom Server gesendet hat.
Nach https://www.w3.org/DesignIssues/Protocolcomms.html, wenn Versionskonflikt, haben wir zwei Möglichkeiten:
- Version (Server) = Version (Client) + 1: zur vorherigen Version herabzustufen Sollte (Impossible Mein Server handle nur ? eine bestimmte Version - kann ich umgehen muss HTTP 0.9)
- Version (Server)> Version (Client) + 1: eine Warnung an den Benutzer gegeben ist (wich ein 4xx, 5xx)
Ein offizielles Zitat von den IETF RFCs sollte nennenswert sein, oder zumindest ein Beispiel mit den aktuell am häufigsten verwendeten Webservern wie Apache oder Nginx.
Wenn ich RFC 7230 richtig verstehe, wenn ich eine Anfrage für die HTTP-Version x.y mit x! = 1 erhalte, sollte ich eine 505 (HTTP-Version nicht unterstützt) senden, sonst sollte ich eine HTTP 1.0 normale Antwort senden? – Ayak973
Ich denke schon, obwohl [dieses Dokument] (https://www.w3.org/Protocols/HTTP/1.0/spec.html#HTTP-Version) (das du erwähnt hast) besagt, dass HTTP/1.0 Server _must_ HTTP/0,9 Anfragen. Aber ich würde nicht die 0.9-Unterstützung selbst implementieren :) – robertklep
Ah, ich habe das vermisst, RFC sind pure Kopfschmerzen für mich ... Ich werde HTTP1.1 sowie 0.9 RFC-konform zu unterstützen. Danke für die Klarstellungen! – Ayak973