Christian Seiler: HTTP-request for a rss feed

Beitrag lesen

Hallo,

GET /rss/nichtrss.rss HTTP/1.1\r\n\r\n
HTTP/.1 400 Bad Request
client sent HTTP/1.1 request without hostname

Die hostname ist ja schon mitgeschickt wurde. deshalb verstehe ich die fehlermeldungen nicht. ich wäre froh wenn jemand mir da helfen könnte?

HTTP/1.1 schreibt vor, dass Du einen Host-Header mitsenden musst (damit werden VirtualHosts realisiert, eine Socketverbindung ist nämlich immer auf IP-Ebene und ohne den Header hat ein HTTP-Server keine Chance, herauszufinden, welchen Host der Client gemeint hat, bei VirtualHosts zeigen nämlich mehrere Hostnamen auf die gleiche IP) - und Du tust dies eben nicht.

Sende folgenden String:

GET /rss/nichtrss.rss HTTP/1.0\r\nHost: www.nichtlustig.de\r\n\r\n

Ich würde Dir vor allem deswegen HTTP/1.0 und nicht HTTP/1.1 vorschlagen, weil Du Chunked verstehen können musst, wenn Du einen HTTP/1.1-Request stellst.

Ansonsten empfehle ich Dir einfach mal, die entsprechenden Standards zu lesen:

* RFC 1945: HTTP/1.0
 * RFC 2616: HTTP/1.1
 * RFC 2617: HTTP/1.1 Authentication

Übrigens: Für C gibt es etliche platformübergreifende frei verwendbare Bibliotheken, mit denen man HTTP-Anfragen stellen kann - warum willst Du das eigentlich nachimplementieren?

Viele Grüße,
Christian