Использование telnet под Windows для проверки HTTP

Использование telnet под Windows для проверки HTTP

Я изучаю http и пытаюсь использовать telnet для отправки собственных http-запросов.

В командной строке я ввел:

telnet google.com 80

Результат: экран очищается, и я вижу мигающий курсор. 1. Почему я не вижу никаких признаков того, что я подключен?

Теперь, пытаясь ввести http-команду (get index.html...), я вижу, что курсор движется вправо по мере ввода, но я не вижу, чтобы буквы появлялись на экране. Только пробелы. 2. Почему так?

(Используется Windows7 64 бит)

решение1

HTTP не основан на протоколе telnet. На самом деле есть несколько ошибок в использовании telnet в качестве основы для «тестирования» HTTP-сервера. Во-первых, telnet отправляет несколько дополнительных байтов сразу после установления TCP-соединения для настройки параметров сеанса. Во-вторых, HTTP не отражает данные, отправленные удаленным пиром. В-третьих, хорошие устройства IPS могут сбрасывать соединения с HTTP-портом при отправке начальных данных сеанса или при обнаружении нарушений протокола.

Использование клиента telnet для проверки HTTP-сервера в лучшем случае является хакерством. Клиент отобразит пустой экран, когда будет установлен сеанс TCP, и отобразит только то, что сервер пошлет обратно. Если вы умны, вы сможете получить страницу на многих серверах... но я бы посчитал это плохой практикой. Почитайте о протоколе HTTP, как форматировать запрос GET.

Базовый http-запрос выполняется следующим образом:

ПОЛУЧИТЬ/HTTP/1.0
 

Обратите внимание на дополнительную строку после запроса. Полный запрос заканчивается пустой новой строкой.

решение2

Почему я не вижу никаких признаков подключения?

Зачем серверу отправлять лишние ненужные данные и использовать большую пропускную способность? Однако вы подключены и можете это проверить.

Попробуйте ввести HTTP/1.0и нажмите [enter]. Вы должны получить ответ.
(С сообщением об ошибке, но обычно этого достаточно, чтобы проверить, запущен ли веб-сервер.)

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

Это из-за windows telnet. У него локальное эхо отключено по умолчанию.

Связанный контент