Я не очень много знаю о том, как работает SSH, но насколько я понимаю, он в основном берет ваш ввод с клавиатуры и направляет его в оболочку удаленной консоли. Довольно легкий, как только соединение установлено и ключи обменены.
HTTP - это совершенно другой протокол. Это работает примерно так, если предположить, что это просто статическая HTML-страница:
- Установить сеанс TCP/IP (это может включать поиск DNS)
- Отправить заголовки HTTP
- Тело отправки HTTP-запроса (GET, POST, PUT и т.д.)
- Веб-сервер получает HTTP-запрос
- Веб-сервер проверяет свои сопоставления обработчиков, чтобы выяснить, как обрабатывать запрос
- Веб-сервер забирает статический HTML-файл
- Веб-сервер формулирует заголовки ответа и отправляет их по проводам
- Веб-сервер проталкивает статический HTML-файл по проводам
- Ваш браузер получает заголовки
- Ваш веб-браузер получает ответ
- Ваш веб-браузер ожидает закрытия соединения
- Ваш веб-браузер затем анализирует HTML
- Ваш веб-браузер затем отображает HTML на мониторе
Это действительно базовый обзор, но в HTTP происходит гораздо больше. Это не «легкий» протокол, в отличие от SSH.
Кроме того, в отличие от SSH, большинство HTTP-запросов являются автономными, и ваши TCP-соединения восстанавливаются. SSH держит сеанс TCP открытым, что означает, что при каждом нажатии клавиши вам не нужно повторно устанавливать соединение. Вот почему ваш веб-браузер может оставаться отключенным в течение нескольких минут, но в тот момент, когда вы теряете соединение, сеанс SSH прерывается.