HTTP(tcp/ip) - 302 - Wo ist letztendlich die Seite

hallo,

ich schreibe an einem Programm (Betriebssystemunabhängig),
das eine Verbindung über TCP/IP mit einer HTTP-Seite herstellen und diese auslesen soll.
Mein Problem ist, dass ich jedes Mal den Code 302 bekomme, mit der Mitteilung, dass die Seite an einer anderen Stelle ist und einem Link der auf genau die Seite zeigt, zu der ich die Verbindung aufgebaut habe.

Ich habe verschiedene Seiten durchprobiert (am meisten www.google.de) und noch nicht herausgefunden, wie ich an den html-Text komme, der bei der gewählten Url im Browser auftaucht.

Kann mir jemand sagen, was ich falsch mache, oder vergessen habe?
Ich übergebe bei der Verbindung nur „GET $host HTTP/1.0“

Kann mir jemand sagen, was ich falsch mache, oder vergessen
habe?
Ich übergebe bei der Verbindung nur „GET $host HTTP/1.0“

da wo du $host stehen hast gehoert der pfad, im einfachsten fall ein / hin.
http://www.ietf.org/rfc/rfc1945.txt

Ich übergebe bei der Verbindung nur „GET $host HTTP/1.0“

da wo du $host stehen hast gehoert der pfad, im einfachsten
fall ein / hin.
http://www.ietf.org/rfc/rfc1945.txt

danke für die Antwort, aber das war eigentlich was ich mit dem $ ausdrücken wollte.
Als Pfad habe ich / , /index.html und ähnliches angegeben und wenn ich zB die /index.html abfrage, bekomme ich besagten 302-Code mit Hinweis auf die Seite /index.html
Ich möchte aber zu der Seite, die mir auch im Browser letztendlich angezeigt wird

Hallo,

Als Pfad habe ich / , /index.html und ähnliches angegeben und
wenn ich zB die /index.html abfrage, bekomme ich besagten
302-Code mit Hinweis auf die Seite /index.html

bist du sicher, dass du nicht einen Redirect auf die Seite „http s ://…/index.html“ bekommst; das wäre ein typischer Fall. Was genau steht im Location-Header? Ansonsten habe ich schon schlimme Seiten gesehen, in denen man in eine solche Endlosschleife gerät, sofern man keine Cookies unterstützt.

Andreas

PS: Warum machst du dir die Mühe, selbst einen HTTP-Client zu schreiben? Dafür gibt es robuste Bibliotheken zuhauf.

Hallo,

Ich übergebe bei der Verbindung nur „GET $host HTTP/1.0“

da wo du $host stehen hast gehoert der pfad, im einfachsten
fall ein / hin.
http://www.ietf.org/rfc/rfc1945.txt

danke für die Antwort, aber das war eigentlich was ich mit dem
$ ausdrücken wollte.

Und wie uebergibst du den hostname?
Wenn auf einer IP mehrere name based virtual hosts liegen, musst du den hostname mit angeben, damit der Server weiss, welchen du ansprichst.

Als Pfad habe ich / , /index.html und ähnliches angegeben und
wenn ich zB die /index.html abfrage, bekomme ich besagten
302-Code mit Hinweis auf die Seite /index.html
Ich möchte aber zu der Seite, die mir auch im Browser
letztendlich angezeigt wird

Da kann ich mich nur dem Tipp anschliessen, eine fertige Bibliothek fuer sowas zu nehmen: wget auf der Kommandozeile, curl als Bibliothek, fuer Perl gibts LWP::Simple, usw.

Gruesse,
Moritz

das mit den Cookies ist ein interessanter Aspekt, über den ich noch garnicht nachgedacht habe
kann ich mir aber nicht vorstellen, da wget zB von sich aus keine Cookies sendet (afaik) und dadrüber bekomme ich die normale Seite ausgegeben

aber vielen dank für die Hinweise, ich werd mal sehen, wo ich weiterkomme