Схема выбирает порт
Урок 39 из 47 курса Сетевое взаимодействие в терминале на Coddy.
http:// и https:// отличаются не только одной буквой. Схема определяет две вещи: какой порт по умолчанию использовать — 80 или 443 — и начинать ли рукопожатие TLS перед отправкой чего-либо.
Это рукопожатие происходит первым, ещё до записи какой-либо строки запроса. Обе стороны договариваются о шифровании, а сервер предоставляет свой сертификат. И только после этого отправляется знакомый вам HTTP — внутри зашифрованного канала.
Таким образом, порт либо поддерживает TLS, либо нет. Запросите https:// у обычного HTTP-порта — и вежливого перехода на другой протокол не будет: рукопожатие немедленно завершается ошибкой, а curl сообщает код выхода 35 — ошибку SSL-соединения.
Это важно распознавать, потому что может показаться, будто сервер недоступен, хотя он исправно обслуживает обычный HTTP по другой схеме.
Задание
СложноПопросите обычный HTTP-сервер использовать TLS и проследите, как он откажется.
- Обычным способом запустите раздачу папки на порту 9129, то есть через обычный HTTP
- Запросите
https://127.0.0.1:9129/и выведитеtls=, за которым следует код завершения curl
Ожидаемый вывод:
tls=3535 — это код curl для ошибки SSL-соединения.
Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Сетевое взаимодействие в терминале
5HTTP вручную
Анатомия запросаМетоды запросовКоды состоянияЗаголовки ответаФормирование ответаПовторение: основы HTTP8HTTPS и TLS
Зачем нужен HTTPSСхема выбирает портСертификаты и довериеКогда TLS не работаетПовторение: HTTPS3Порты и сокеты
Что такое портХорошо известные портыЛокальный хостПрослушивание и подключениеПовторение: порты6curl в деталях
Просмотр заголовковСохранение ответовПользовательские заголовкиСтатус и время выполненияКоды выхода curlПовторение: флаги curl9Аутентификация и отладка
API-ключи и BearerUser-AgentТайм-ауты и повторные попыткиАнализ ошибкиПовторение: отладкаПотренируйтесь самостоятельно: Песочница Terminal