Анализ ошибки
Урок 46 из 47 курса Сетевое взаимодействие в терминале на Coddy.
Объедини весь курс в один метод. Если что-то не удаётся соединить, причины могут быть лишь нескольких типов, и у каждой есть свой характерный признак.
- Имя не разрешилось. Сбой происходит сразу, ещё до любого соединения. Проверь с помощью lookup.
- Никто не прослушивает порт. Соединение немедленно отклоняется, код выхода curl — 7.
- Трафик отбрасывается. Запрос зависает, а затем завершается с кодом 28.
- Порт не поддерживает TLS. Код выхода — 35.
- Соединение установлено успешно. Теперь проверь код состояния: 4xx — проблема в твоём запросе, 5xx — на их стороне.
Две из этих ситуаций различаются по длительности сбоя, поэтому определить, произошёл ли сбой мгновенно или запрос завис, важнее, чем любое сообщение об ошибке.
Двигайся снизу вверх по стеку: имя, затем компьютер, затем порт, затем сервис, затем ответ.
Задание
ЭкспертСоздайте три разных сбоя и обозначьте каждый его кодом выхода.
Когда сервер нигде не запущен, выведите:
refused:и код дляhttp://127.0.0.1:9999/dropped:и код дляhttp://10.255.255.1/с ограничением в 2 секундыnotls:и код дляhttps://127.0.0.1:9999/
Ожидаемый вывод:
refused: 7
dropped: 28
notls: 7Над третьим стоит задуматься: когда вообще никто не прослушивает соединение, оно отклоняется ещё до того, как предпринимается попытка установить TLS.
Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Сетевое взаимодействие в терминале
3Порты и сокеты
Что такое портХорошо известные портыЛокальный хостПрослушивание и подключениеПовторение: порты6curl в деталях
Просмотр заголовковСохранение ответовПользовательские заголовкиСтатус и время выполненияКоды выхода curlПовторение: флаги curl9Аутентификация и отладка
API-ключи и BearerUser-AgentТайм-ауты и повторные попыткиАнализ ошибкиПовторение: отладкаПотренируйтесь самостоятельно: Песочница Terminal