Christian Seiler: Wahlfreier Zugriff auf fremde Ressourcen

Beitrag lesen

Hallo Fritz,

$out = "GET / HTTP/1.1\r\n";

Nur mal so als allgemeine Ergänzung, auch wenn das an Deinem Problem nichts ändert (aber vielleicht ist's für andere hilfreich):

Du willst kein HTTP/1.1, sondern Du willst HTTP/1.0 und trotzdem einen Host-Header senden (auch wenn der in der 1.0 strenggenommen noch nicht drin ist). Warum? Clients, die HTTP/1.1-Anfragen stellen, MÜSSEN chunked encoding verstehen - das wird laut HTTP-Spec so vorgeschrieben. Selbst bei Connection: Close kann es vorkommen, dass die Server Daten chunked-kodiert senden, warum auch nicht, laut HTTP-Spec muss das der Client ja sowieso kapieren. Nachdem chunked zwar nicht überaus kompliziert ist, aber auch nicht vollkommen trivial zu implementieren, würde ich vorschlagen, als einfachere Methode einfach HTTP/1.0 + Host-Header zu verwenden, d.h. einen Request wie

GET / HTTP/1.0
Host: ...
sonstige header

abzusetzen - der Connection-Header sollte dann aber weggelassen werden, da HTTP/1.0 den ja nicht kennt und sowieso immer die Verbindung geschlossen wird.

Viele Grüße,
Christian