Я попробовал это с Bash:

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

Это работает нормально, и я могу получить страницу, затем я пытаюсь это из 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

Я получаю Internal Server Error (Http Error Code 500)

Дело в том, что на самом деле у меня нет доступа к серверу (это приложение, развернутое на IIS 7). Почему выполнение GET и доступ к нему через telnet - нет?

Все, о чем я мог думать, - это то, что мне нужно отправить несколько дополнительных заголовков. Я попытался использовать Live Http Headers и отправить то же самое, что и они:

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

Но это все еще не работает с Telnet.

2 ответа2

3

Серверу (Server: Microsoft-IIS/7.5) также необходим заголовок HOST а также заголовок USER-AGENT , я попробовал это:

 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

и это сработало.

1

Я попробовал это так, как вы описываете, и это также не получается для меня.

Однако мне удалось заставить его работать.

Добавить добавить заголовок агента пользователя. например, "Агент пользователя: wget/1.12"

Вы также можете поставить заголовок подключения.
то есть «Соединение: Keep-Alive» или «Соединение: Закрыть»

Если вы когда-нибудь захотите диагностировать что-то подобное, просто загрузите инструмент, такой как wireshark. Это доступно для Windows, Linux и Mac. Это когда смотришь почему wget тоже работает. Я угадал поле user-agent, а затем вручную проверил его с помощью telnet. Конечно же - успех!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .