GET funziona ma telnet no (HTTP GET)


0

Ho provato questo da bash:

GET http://cetatenie.just.ro HTTP/1.1

Funziona bene e sono in grado di ottenere la pagina, quindi provo questo da Telnet:

telnet cetatenie.just.ro 80 
Trying 85.120.166.76...
Connected to cetatenie.just.ro.
Escape character is '^]'.
GET / HTTP/1.1
Host: cetatenie.just.ro

Ottengo un Internal Server Error(codice errore HTTP 500)

Il fatto è che in realtà non ho accesso al server (è un'app distribuita su IIS 7). Perché eseguire un GET funziona e accedervi tramite telnet no?

Tutto quello a cui riuscivo a pensare era che dovevo inviare alcune intestazioni aggiuntive. Ho provato a utilizzare le intestazioni Live Http e inviare la stessa cosa che fanno:

http://cetatenie.just.ro/

GET http://cetatenie.just.ro/ HTTP/1.1
Host: cetatenie.just.ro
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Proxy-Connection: keep-alive
Cookie: .ASPXANONYMOUS=Ij8RLazqzAEkAAAAMTk5ZjY0MGUtYWU0NC00ZmViLTgyNTgtMWU0MjNlM2IyZWEx0; language=en-US

Ma non funziona ancora con Telnet.


GETnon è un comando bash standard. Cosa sta fornendo GET?
Paolo,

1
Mio male, eccolo qui: LWP-REQUEST. Non sapevo nemmeno di avere questa libreria perl :-)
Eugene,

Risposte:


3

Il server (Server: Microsoft-IIS / 7.5) richiede anche HOSTun'intestazione e l' USER-AGENTintestazione, ho provato questo:

 telnet cetatenie.just.ro 80 
 Trying 85.120.166.76...
 Connected to cetatenie.just.ro.
 Escape character is '^]'.
 GET / HTTP/1.1
 HOST: cetatenie.just.ro
 USER-AGENT: Foobar

e ha funzionato.


1
Mi dispiace ma sei sicuro? Ho appena testato quello che hai fatto e ricevo ancora una risposta di errore dal server: <span> <H1> Errore del server nell'applicazione '/'. <Hr width = 100% size = 1 color = silver> </H1>
Eugene

1
Non posso rispondere alla mia domanda :) per altre 7 ore. Comunque - @math avevi quasi ragione, ho bisogno anche dell'intestazione User-Agent. Thx
Eugene,

Emm, scusa: non ho visto quella 500 nel server rispondere. E sì, hai perfettamente ragione, hai bisogno anche dell'intestazione user-agent. Cambierò la mia risposta.
matematica,

Ti voterò quando avrò abbastanza punti per :-) Saluti, Eugene
Eugene

@Eugene, dovresti essere in grado di accettare questa come risposta corretta facendo clic sul segno di spunta sotto il numero di voti.
Randy Orrison,

1

L'ho provato nel modo in cui descrivi e anche per me fallisce.

Tuttavia, sono riuscito a farlo funzionare.

Aggiungi intestazione Aggiungi agente utente. ad es. "User-Agent: wget / 1.12"

Puoi anche mettere l'intestazione della connessione.
ovvero "Connessione: keep-alive" o "Connessione: chiudi"

Se mai vuoi diagnosticare qualcosa del genere, carica uno strumento come WireShark. È disponibile per Windows, Linux e Mac. Questo è quando guardiamo perché anche wget ha funzionato. Ho indovinato il campo user-agent e poi l'ho verificato manualmente con telnet. Abbastanza sicuro - successo !.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.