Wie erhalten Sie den Inhalt einer Webseite mit Telnet? (Zum Beispiel https://stackoverflow.com/questions Seite Inhalt)So senden Sie eine HTTP-Anfrage mit Telnet
Antwort
telnet Server 80
GET /index.html
Sie
telnet stackoverflow.com 80
tun konnte Und dann fügen
GET /questions HTTP/1.0
Host: stackoverflow.com
# add the 2 empty lines above but not this one
H ere ist ein Transkript
$ telnet stackoverflow.com 80
Trying 151.101.65.69...
Connected to stackoverflow.com.
Escape character is '^]'.
GET /questions HTTP/1.0
Host: stackoverflow.com
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
...
Hrm, es funktionierte für mich gut (und der 'Accept' Header war auch nicht notwendig). Wenn Sie es schnell genug ausführen (und mit den gleichen Kopfzeilen wie ein echter Browser), dann wäre es buchstäblich unmöglich, den Unterschied zwischen einer CLI-Anfrage und einer von einem Browser zu unterscheiden. Der einzige Weg zu diskriminieren wäre, einen größeren Kontext zu betrachten (z. B. Folgeanfragen oder deren Fehlen oder ihr Timing), aber selbst dann ist es nicht deterministisch, da ein Benutzer eine Erweiterung oder Einstellung verwenden könnte, um das Laden externer Ressourcen zu deaktivieren). – jdunk
Am Anfang der Zeilen gab es zusätzliche Leerzeichen, die eine HTTP/1.1 400 Bad Request-Antwort verursachten. Ich habe es repariert und ein Transkript eingefügt. Prost. –
Für die Nachwelt Ihre Frage war, wie eine HTTP-Anfrage an https://stackoverflow.com/questions
zu senden. Die wirkliche Antwort ist: Sie können nicht mit Telnet, weil dies eine https-only erreichbare URL ist.
So könnten Sie openssl
statt telnet
, wie dies zum Beispiel verwenden
$ openssl s_client -connect stackoverflow.com:443
...
---
GET /questions HTTP/1.1
Host: stackoverflow.com
Dies gibt Ihnen die https Antwort.
Beispiel 'telnet telehack.com'. [Liste der Beispiele] (http://www.telnet.org/htm/places.htm) – William