Http-response mit nicht-http-header
Ich geschrieben habe, ein mini-minimalistischen http-server Prototyp ( stark inspiriert durch die boost-asio-Beispiele ), und für den moment habe ich alle http-header der server-Antwort, werden nur die html-string-Inhalt. Überraschenderweise funktioniert es Prima.
In dieser Frage, der OP wundert sich über die notwendigen Felder in der http-Antwort und einer der Kommentare besagt, dass Sie möglicherweise nicht wirklich wichtig, von der server-Seite.
Habe ich noch nicht versucht zu Antworten Binär-Bild-Dateien, oder gzip komprimierte Datei für den moment, in welchen Fällen ich nehme an, es ist zwingend erforderlich, um einen http-header.
Aber für nur-text-Antworten (html -, css-und xml-Ausgaben), wäre es ok nie http-header in meinem server Antworten ? Was sind die Risiken /Fehler möglich ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf ein minimum reduziert, Sie muss bieten einen header mit dem status-Zeile und dem Datum.
Als jemand, der geschrieben hat, viele Protokoll-Parser, ich bin betteln Sie, auf meine digitale metaphorischen Knie, bitte oh bitte oh bitte nicht nur völlig ignorieren Sie die Spezifikation, nur weil Ihre Lieblings-browser, können Sie mit ihm Weg erhalten.
Ist es völlig in Ordnung, um ein Programm zu erstellen, dass ist nur minimal funktionsfähig, solange die Daten, die er produziert, ist richtig. Dies sollte nicht eine große Belastung, da alle Sie tun müssen ist, fügen Sie drei Zeilen an den Anfang Ihrer Antwort. Und eine dieser Linien ist leer! Bitte nehmen Sie sich ein paar Minuten zu schreiben, die zwei glorreiche Zeile code, bringen Sie Ihre response-Daten in Einklang mit den spec.
Den Headern, die Sie wirklich liefern sollte, sind:
Connection: close
zu Ihrem HeaderKönnen Sie nicht senden Sie ein content-Typ mit der Antwort, aber Sie müssen verstehen, dass die Kunden möglicherweise nicht wissen, was Sie mit den Daten machen. Der Kunde hat zu erraten, welche Art von Daten es ist. Ein browser kann dann entscheiden, behandeln Sie es als eine Datei heruntergeladen, statt es anzuzeigen. Einen automatisierten Prozess (jemand bash/curl-Skript) vernünftigerweise entscheiden, dass die Daten nicht dem erwarteten Typ, so sollte es weggeworfen werden.
Aus der HTTP/1.1 Spezifikation Abschnitt 3.1.1.5. Content-Type: