Mit dem Befehl telnet docs.python.org 80kann ich eine manuelle HTTP-Anforderung ausführen http://docs.python.org/2/license.html, indem ich die tatsächliche Anforderung eingebe.
Anstatt es jetzt live einzugeben, möchte ich die Anfrage aus einer Textdatei füttern.
Ich habe es versucht:
cat request.txt|telnet docs.python.org 80
request.txt :
GET /2/license.html HTTP/1.1
Host: docs.python.org
(Sie müssen die Datei mit einer leeren Zeile beenden, sonst erhalten Sie eine schlechte Anfrage!)
Die Verbindung zum Server wird jedoch sofort geschlossen.
Wie soll ich das richtig Rohr request.txt zu telnet docs.python.org 80?
bearbeiten:
Es ist gut zu wissen; Wenn Sie HEADanstelle von verwenden GET, erhalten Sie dieselbe Antwort wie bei einer GETAnforderung, mit Ausnahme des Nachrichtentexts.
Verwenden HEADSie diese Option, wenn Sie nur die HTTP-Header untersuchen möchten. (dh damit der Inhalt der Antwort Ihre Shell-Ausgabe nicht überladen.)
telnet docs.python.org 80, eine Verbindung mit dem Server her. Sie müssen sich also beeilen und diese beiden Zeilen (Kopieren, Einfügen, falls erforderlich) innerhalb weniger Sekunden eingeben, da sonst der Server einen Timeout-Fehler zurückgibt.
telnet docs.python.org 80 <ENTER> GET /2/license.html HTTP/1.1 <ENTER> Host: docs.python.org <ENTER> <ENTER>
<ENTER>am Ende ein zweites Mal eingeben müssen, ist, dass das HTTP-Protokoll nach den Anforderungsheadern eine zusätzliche Leerzeile erfordert. Siehe den Abschnitt mit den Anforderungsnachrichten des HTTP-Wiki-Artikels
telnet < request.txtaber ich kann den GETBefehl nicht zum Laufen bringen.
GETIhnen gepostete ausführe , wird eine408 Request Time-outFehlermeldung angezeigt. Auch istwget http://docs.python.org/2/license.htmlkeine Option?