In diesem Artikel wird gezeigt, wie man mit dem Telnet-Client unter Windows oder Linux eigene HTTP-Requests an einen Webserver im Internet oder im lokalen Netzwerk senden kann. Voraussetzung für diesen Artikel ist, dass ihr mit dem Hypertext Transfer Protocol einigermaßen vertraut seid. Ob ihr unter Windows oder unter Linux arbeitet, ist erst einmal nicht relevant. Die Befehle für den Telnet-Client in der Konsole sind unter beiden Betriebssystemen gleich.
(Falls nicht: Bitte Rückmeldung über die Kommentare!)
Für diesen Artikel arbeite ich unter Windows 7 (mit Windows 8-Theme). Windows 7-Nutzer müssen den Telnet-Client allerdings noch aktivieren, da dieser standardmäßig deaktiviert ist, weil Telnet schon lange durch SSH ersetzt wurde.
Windows 7: Telnet-Client über Systemsteuerung aktivieren
Um den Telnet-Client unter Windows 7 zu aktivieren, sucht ihr im Startmenü nach Windows-Funktionen
und drückt die Entertaste. Gebt danach euer Admin-Passwort ein, falls ihr dazu aufgefordert werdet, und scrollt dann zu Telnet-Client
. Dort aktiviert ihr das Kontrollkästchen und klickt auf OK
. Danach ist der Telnet-Client aktiviert.
Telnet: Verbindungsaufbau zum Webserver
Um eine Telnet bzw. HTTP-Verbindung zu einem Webserver aufzubauen, müssen zwei Parameter angeben werden: Einmal der Remote-Host und der Remote-Port. Wenn der Remote-Port nicht angegeben wird, dann versucht der Telnet-Client standardmäßig eine Verbindung über das Telnet-Protokoll auf Port 23 aufzubauen. Wir wollen aber eine HTTP-Verbindung aufbauen, also müssen wir den Port 80 angeben. In der Konsole führt ihr dann folgende Befehlskette aus:
telnet %RemoteHost% %RemotePort%
Nachdem ihr die Befehlskette mit Enter abgeschickt habt, erscheint ein leerer Bildschirm, in dem auf eure Eingabe gewartet wird. Der Webserver ist nun bereit, um den HTTP-Request entgegenzunehmen. Allerdings hat man für die Eingabe des HTTP-Requests nicht allzu viel Zeit, denn der Server schließt die Verbindung nach einer gewissen Zeitspanne automatisch wieder, wenn keine Antwort vom Client (also von euch) kommt.
Telnet: Einen HTTP-Request von Hand senden
Wenn ihr die vorherigen Schritte erledigt habt und die Verbindung zum Webserver aufgebaut ist, dann könnt ihr direkt mit dem Senden des HTTP-Requests beginnen. Die Begriffe Request, Response, Header und Body sollten euch schon durch den Artikel über das Hypertext Transfer Protocol bekannt sein.
Beginnt nun also damit, indem ihr vom Webserver die Webseite anfordert. Im Beispiel sende ich jetzt mal einen Request, der mir den Inhalt meiner Webseite zurücksenden soll. Der Response, also die Antwort auf eine HTTP-Anfrage, wird direkt im Konsolenfenster angezeigt.
Hinweis:
Es muss mindestens die Request-Methode, die Ressource, die Protokollversion und der Hostname angegeben werden. Andernfalls sendet der Webserver den HTTP-Statuscode 400 Bad Request
zurück. Für weitere Informationen lest ihr den Artikel über das Hypertext Transfer Protocol. Dort findet ihr auch Beispiel-Requests, die ihr hier verwenden könnt.
Beachtet bitte, dass ihr die Eingabe des HTTP-Requests, nachdem die Verbindung aufgebaut wurde, blind machen müsst. Aus einem mir unbekannten Grund zeigt die Konsole einem nicht an, was man dort eingibt, sondern man sieht lediglich den Cursor. Aus diesem Grund ist der HTTP-Request auch nicht im Screenshot zu sehen.