Udo: Versuche HTTP-Seiten per CGI-Programm zu empfangen -» MOVED-SCHLEIFE!

Ich versuche über ein per CGI-betriebenes Programm Seiten aus dem Internet zu laden und den Quelltext anzuzeigen.

Bei einigen Seiten geht das ganz gut, aber bei anderen passieren merkwürdige Sachen:
1. manche Seiten liefern einen MOVED-Header der GENAU auf die gleiche Seite zeigt:
http://www.guweb.com/cgi-bin/http_test?url=http://www.wer-weiss-was.de/
normal geht's:
http://www.wer-weiss-was.de/

2. andere wiederum verweisen auf eine ganz andere Seite
http://www.guweb.com/cgi-bin/http_test?url=http://www.deejay.it
verweist auf http://www.repubblica.kataweb.it/ und das ist eine ganz andere Seite als http://www.deejay.it

Die meisten anderen Seiten funktionieren perfekt:
z.B. http://www.guweb.com/cgi-bin/http_test?url=http://www.kostenlos.de

Die Dateien werden per HTTP 1.0 GET-request angefordert, ohne zusätzliche Header-Daten:
"GET / HTTP/1.0"

Muss ich irgendwas beachten??

Udo

bitte [auch] per e-mail antworten :)

  1. Hi!

    Bin mir nicht sicher, aber ich glaube, manche Webserver reagieren so, wenn auf dem Rechner mehrere virtuelle Hosts fuer dieselbe IP:Port-Kombination installiert sind. Auf solche kann man nur mit HTTP/1.1 zugreifen, bei dem der Host-Header ein Plichtfeld ist. Anhand dieses Feldes weiss dann der Webserver, an welchen der virtuellen Hosts die Anfrage gerichtet ist. Versuch es also mal mit so einem Request:
        GET / HTTP/1.1
        Host: www.wer-weiss-was.de

    Host ist uebrigens das einzige Pflichtfeld bei HTTP/1.1, ist also auch nicht schwieriger geworden.

    Calocybe

    1. ist. Versuch es also mal mit so einem Request:

      GET / HTTP/1.1
          Host: www.wer-weiss-was.de

      Vielen Dank!! :-))
      Jetzt funktioniert es.
      Allerdings verwende ich immer ncoh HTTP/1.0 aber mit Host: und "Connection: close"
      denn bei HTTP/1.1 bekomme ich noch einige zusätzlichen Daten, die ich momentan nicht dekodieren kann (chucked).
      Gibt es da bedenken?

      danke nochmal
      Udo

      1. Guten Morgen! ;-)

        Vielen Dank!! :-))
        Jetzt funktioniert es.

        Wenn man bedenkt, dass es eher geraten war, hab ich ja nicht schlecht getroffen. *g*

        Allerdings verwende ich immer ncoh HTTP/1.0 aber mit Host: und "Connection: close"
        denn bei HTTP/1.1 bekomme ich noch einige zusätzlichen Daten, die ich momentan nicht dekodieren kann (chucked).

        Chunked Transfers sind nur fuer Persistent connections noetig, zumindest wenn ich http://www.apacheweek.com/features/http11 richtig verstanden habe. Persistent Connections kannst Du mit dem Header "Connection: close" verhindern, aber ob das zwangslaeufig heisst, dass ein Webserver dann nicht trotzdem chunked sendet, wage ich zu bezweifeln. Wenn es mit HTTP/1.0 und dem Host-Header funktioniert, solltest Du wohl besser dabei bleiben. Aber naja, eigentlich habe ich davon nicht soviel Ahnung...

        So long