HTTP über telnet

Hallo,

Ich fand die idee sich über telnet mit einem Mailserver zu verbinden schon ganz nett und hab damit ein wenig rumprobiert. Jetzt hab ich mir gedacht, dass man das gleiche ja auch mit einem HTTP Server machen könnt. Daz hab ich ganz einfach einen Webserver mit XAMP aufgesetzt und wollt mich über putty auf port 80 mit localhost verbinden. Das klappt überrachenderweise auch ganz gut soweit, nur leider weiß ich jetzt nicht was ich mit dem Fenster machen soll. Bei den Mailservern gabs ja bestimmte Befehle zum anmelden oder um die Mails abzufragen, ... die findet man quasie überall, wenn man ein wenig sucht. Nur leider find ich solche Befehlsbeschreibungen für http nicht :o( .

Habt ihr nen Tipp für mich, woher ich erfahren kann, welche befehle ein HTTP Server sehen will, um mir Beispielsweise die index.htm im htdocs Verzeichniss zu übermitteln?


mfg,
qiubic
 
Den Wikieintrag hab ich schon gelesen (der rest war mir noch neu), ... leider komm ich mit dem Beispiel dort nicht so ganz klar. oder besser gesagt, es funktioniert auf diese art und weise scheinbar nich so recht. Aber die idee mit Ethereal ist super =) - hätt ich selbst drauf komm solln, ... Dank dir für den Hinweis.

Werds morgen auf arbeit mal testen.
 
Ok ok,

Wenn ich mit meinem Browser auf google gehe, sendet er diese Informationen:

Code:
GET / HTTP/1.1
User-Agent: Opera/8.54 (Windows NT 5.1; U; en)
Host: www.google.de
Accept: application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1
Accept-Language: en
Accept-Charset: windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers

Das alles brauchst du aber nicht einzutippen um eine Antwort zu erhalten. Wir verlangen einfach nur mal nach der Index-Seite, also verbinden wir uns mit google auf dem HTTP-Port und senden

Code:
GET / HTTP/1.1

hin ("GET" als Befehl; "/" als Ordner/Datei, HTTP:/1.1 unser Protokoll).

Und schon bekommen wir eine Antwort:

Code:
HTTP/1.1 302 Found
Location: http://www.google.de/
Cache-Control: private
Set-Cookie: PREF=ID=4c0282cc8b063ca6:TM=1146664159:LM=1146664159:S=gy-hZ9Iuw5x6d
SL-; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com
Content-Type: text/html
Server: GWS/2.1
Content-Length: 218
Date: Wed, 03 May 2006 13:49:19 GMT

<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE>
</HEAD>
<BODY>
<H1>302 Moved</H1>
The document has moved <A HREF="http://www.google.de/">here</A>.
</BODY>
</HTML>

Diesen anhängenden HTML-Code kannst du nun interpretieren.

Das soll jetzt eine kleine Starthilfe sein.
 
Hm, ... soweit so gut. Hab erstmal verstanden, wies gehen soll. Nur warum liefert google "302 Moved" zurück? Im browser is das Dokument ja auch vorhanden. Doch das sollte kein Problem sein (find ich bestimmt noch raus). Hab das ganze mal bei der Wikipedia probiert und tatsächlich bekomm ich die richtige Seite zurück, nur das putty hier die verbindung nach dem senden abbricht. Ist das normal?

EDIT:
Hab inzwischen rausgefunden, warum das ganze bei meinen vorherigen versuchen nicht funktioniert hat. Wenn ich mit "telnet google.de 80" öffne, bekomme ich weiterhin eine fehlermeldung zurück, egal nach was ich den Webserver frage. Wenn ich aber putty nutze und dort als format RAW einstelle klappts, ... Warum auch immer das so ist.

EDIT2:
Jetz weiß ich auch, was man gegen das abbrechen der Verbindung tun kann: man darf nicht nur

Code:
GET / HTTP/1.1
eingeben, sondern muss das ganze

Code:
GET / HTTP/1.1
User-Agent: Opera/8.54 (Windows NT 5.1; U; en)
Host: www.google.de
Accept: application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1
Accept-Language: en
Accept-Charset: windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers

abtippen um die verbindung aufrecht zu erhalten. :o)

Danke für die mithilfe euch beiden =).
 
Code:
GET / HTTP/1.1
Connection: Keep-Alive, TE
Intuitiv würde ich sagen, dass die beiden Zeilen reichen ... würde dir ne Menge Tipparbeit ersparen.
 
Zurück
Oben