Der Martin: Hardware Webinterface

Beitrag lesen

Hi,

ABER: umsomehr müsste es euch verwundern, dass wenn man die slashes richtig schreibt und den socket schließt, das dann Hello world da steht!! :)

es wundert mich tatsächlich, denn per definitionem (HTTP-Spezifikation) fängt eine gültige HTTP-Response mit den Response-Headerzeilen an, von denen zumindest der Status Pflicht ist, und erst nach einer Leerzeile beginnt der eigentliche Nutzinhalt.

der quelltext im browser ist: <HTML><HEAD></HEAD><BODY>Hello World</BODY></HTML> - korrekt

Vermutlich ein Effekt der browser-internen Fehlertoleranz: Er erkennt, dass die erste (und einzige) empfangene Zeile kein gültiger HTTP-Header ist, und geht dann davon aus, dass es sich da wohl schon um den Nutzinhalt handelt.

Wenn du die Antwort deines Servers mit

HTTP/1.0 200 OK

gefolgt von einer Leerzeile beginnen lässt, und dann erst deinen bisherigen Nutzinhalt folgen lässt, hast du immerhin eine korrekte Minimal-Response. Damit sagst du außerdem gleich dem Browser, der ja in HTTP/1.1 angefragt hat, dass du kein 1.1 "sprechen" willst, sondern nur HTTP/1.0 (denn für HTTP/1.1 müsste der Server eine Menge Raffinessen zusätzlich beherrschen).

So long,
 Martin

--
Lieber eine Stumme im Bett, als eine Taube auf dem Dach.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(