Mit dem Befehl telnet docs.python.org 80
kann 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 HEAD
anstelle von verwenden GET
, erhalten Sie dieselbe Antwort wie bei einer GET
Anforderung, mit Ausnahme des Nachrichtentexts.
Verwenden HEAD
Sie 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.txt
aber ich kann den GET
Befehl nicht zum Laufen bringen.
GET
Ihnen gepostete ausführe , wird eine408 Request Time-out
Fehlermeldung angezeigt. Auch istwget http://docs.python.org/2/license.html
keine Option?