Webseiten auslesen die Zweite..
Verfasst: Di Okt 25, 2011 9:25 pm
...und Action!
Hallo zusammen,
ich habe mir eben 'Beej's Guide to Network Programming' duchgelesen und mir sowohl einen kleinen Server als auch einen kleinen Clienten geschrieben, die bereits kurz darauf fröhlich miteinanden kommunizierten. Als nächstes nahm ich dann Kontakt zum Webserver meines Vertrauens auf. Port 80 war der verabredete Treffpunkt, er trug eine rote Rose, ich erkannte ihn sofort und nach kurzer Zeit stand die Verbindung. Tja und wie es beim ersten Date nunmal so ist, herrschte betretenes Schweigen.Ich wusste nicht was ich sagen sollte und er hatte die ganze Zeit diesen "Los frag mich endlich was"-Blick drauf. Gerade als die Situation zu eskalieren drohte fand ich den rettenden Hinweis. "Versuchs mit GET !". Gesagt getan. Die Kommunikation lief im Prinzip auch reibungslos, nur waren die Anworten nicht immer die, die ich mir gewünscht hatte...
Nun konkret zu meiner Frage:
Wie genau muss ich meine GET Anfrage formulieren?
Häufig ist mir "GET /HTTP/1.0" begegnet, allerding liefern mir die meisten Server daraufhin:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.2.16 (Debian) Server at atrops.eu Port 80</address>
</body></html>
Ich habe mir daraufhin den RFC2616 in groben Zügen durchgelesen. Dort heisst es man kann die Anfrage direkt unter Angabe des vollständigen Pfades stellen, also zb "GET http://www.testurl.org/forum/viewtopic.php?f=21&t=4641".
Obwohl ich nicht verstehe warum ich den vollen Pfad angeben muss, wenn bereits eine Verbindung zu http://www.testurl.org:80 besteht, hat das in einigen Fällen funktioniert.
Häufig bekam ich allergings:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://board.anotherfail.de/tn20.htm">here</a>.</p>
</body></html>
obwohl die Adresse sich über einen Browser einwandfrei direkt anwählen lässt.
"GET /forum/irgendeinthread.htm HTTP/1.1"
funtionierte garnicht, obwohl das laut RFC2616 ebenfalls klappen sollte und für mich auch die logischste Variante war.
Sofern ihr wisst wo ich mehr Informationen darüber finde oder ihr ein wenig dazu erzählen möchtet, wäre ich euch sehr dankbar.
Ansonsten eine super Seite hier, muss ich sagen! Es ist schön, wenn man sich mit Gleichgesinnten austauschen kann.
Ich bin zwar erst seit Kurzem dabei, aber C Programmierung macht einfach enorm Spass.
mfG LittleE
Hallo zusammen,
ich habe mir eben 'Beej's Guide to Network Programming' duchgelesen und mir sowohl einen kleinen Server als auch einen kleinen Clienten geschrieben, die bereits kurz darauf fröhlich miteinanden kommunizierten. Als nächstes nahm ich dann Kontakt zum Webserver meines Vertrauens auf. Port 80 war der verabredete Treffpunkt, er trug eine rote Rose, ich erkannte ihn sofort und nach kurzer Zeit stand die Verbindung. Tja und wie es beim ersten Date nunmal so ist, herrschte betretenes Schweigen.Ich wusste nicht was ich sagen sollte und er hatte die ganze Zeit diesen "Los frag mich endlich was"-Blick drauf. Gerade als die Situation zu eskalieren drohte fand ich den rettenden Hinweis. "Versuchs mit GET !". Gesagt getan. Die Kommunikation lief im Prinzip auch reibungslos, nur waren die Anworten nicht immer die, die ich mir gewünscht hatte...
Nun konkret zu meiner Frage:
Wie genau muss ich meine GET Anfrage formulieren?
Häufig ist mir "GET /HTTP/1.0" begegnet, allerding liefern mir die meisten Server daraufhin:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.2.16 (Debian) Server at atrops.eu Port 80</address>
</body></html>
Ich habe mir daraufhin den RFC2616 in groben Zügen durchgelesen. Dort heisst es man kann die Anfrage direkt unter Angabe des vollständigen Pfades stellen, also zb "GET http://www.testurl.org/forum/viewtopic.php?f=21&t=4641".
Obwohl ich nicht verstehe warum ich den vollen Pfad angeben muss, wenn bereits eine Verbindung zu http://www.testurl.org:80 besteht, hat das in einigen Fällen funktioniert.
Häufig bekam ich allergings:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://board.anotherfail.de/tn20.htm">here</a>.</p>
</body></html>
obwohl die Adresse sich über einen Browser einwandfrei direkt anwählen lässt.
"GET /forum/irgendeinthread.htm HTTP/1.1"
funtionierte garnicht, obwohl das laut RFC2616 ebenfalls klappen sollte und für mich auch die logischste Variante war.
Sofern ihr wisst wo ich mehr Informationen darüber finde oder ihr ein wenig dazu erzählen möchtet, wäre ich euch sehr dankbar.
Ansonsten eine super Seite hier, muss ich sagen! Es ist schön, wenn man sich mit Gleichgesinnten austauschen kann.
Ich bin zwar erst seit Kurzem dabei, aber C Programmierung macht einfach enorm Spass.
mfG LittleE