2013-04-02 8 views

Antwort

15

telnet Server 80


GET /index.html

30

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 
... 
+0

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

+0

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. –

4

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.

Verwandte Themen