Come ottenere il contenuto della pagina Web utilizzando Telnet? (Ad esempio https://stackoverflow.com/questions il contenuto di pagina)Come inviare una richiesta HTTP utilizzando Telnet
risposta
telnet ServerName 80
GET /index.html
si potrebbe fare
telnet stackoverflow.com 80
e quindi incollare
GET /questions HTTP/1.0
Host: stackoverflow.com
# add the 2 empty lines above but not this one
H ere è una trascrizione
$ 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, ha funzionato bene per me (e anche l'intestazione 'Accetta' non era necessaria). Se lo si esegue abbastanza rapidamente (e con le stesse intestazioni di un browser reale), sarebbe letteralmente impossibile distinguere tra una richiesta CLI e una da un browser. L'unico modo per discriminare sarebbe guardare a un contesto più ampio (es. Richieste di follow-up o la loro mancanza, o il loro tempismo, ma anche in questo caso non è deterministico in quanto un utente potrebbe utilizzare un'estensione o un'impostazione per disabilitare il caricamento di risorse esterne). – jdunk
C'erano degli spazi extra all'inizio delle righe che causavano una risposta 'HTTP/1.1 400 Bad Request'. Ho risolto e incluso una trascrizione. Saluti. –
Ai posteri, la sua domanda era come inviare una richiesta HTTP a https://stackoverflow.com/questions
. La vera risposta è: non puoi con telnet, perché questo è un URL raggiungibile solo da https.
Quindi, si potrebbe desiderare di utilizzare openssl
invece di telnet
, come questo per esempio
$ openssl s_client -connect stackoverflow.com:443
...
---
GET /questions HTTP/1.1
Host: stackoverflow.com
Questo vi darà la risposta https.
Esempio telnet telehack.com'. [Elenco degli esempi] (http://www.telnet.org/htm/places.htm) – William