Чему вы научитесь
- Читать вывод curl и определять метод, адрес, статус, заголовки и тело фактического HTTP-ответа
- Различать этапы системного разрешения имени, TCP-соединения, TLS-проверки и обмена HTTP-данными
- Проверять разрешение имени через socket.getaddrinfo и понимать, какие выводы этот вызов позволяет сделать о DNS
- Воспроизводить ошибку разрешения имени и определять, почему TCP-соединение ещё не началось
- Диагностировать отказ TCP-соединения с закрытым портом и проверять исправление адреса или порта
- Воспроизводить таймаут ожидания HTTP-ответа и отличать его от отказа подключения и таймаута соединения
- Отличать ошибки подключения и ожидания от ответов HTTP 404 и 503, которые действительно вернул сервер
- Проверять HTTP-заголовки и перенаправления, различать исходный ответ 302 и результат перехода клиента
- Запускать локальный HTTPS-сервис и устанавливать, на каком этапе проверяется TLS-сертификат
- Разбирать ошибку доверия к сертификату и настраивать доверие к учебному удостоверяющему центру для отдельного клиента
- Диагностировать несовпадение имени сервера с сертификатом и исправлять подключение с сохранением проверки TLS
- Создавать диагностический HTTPX-клиент на Python и отдельно обрабатывать HTTP-ответы, ошибки соединения и таймауты
- Писать проверки pytest для успешных запросов, HTTP-ошибок и контролируемых сетевых отказов
- Выбирать следующую диагностическую проверку по симптому и подтверждать вывод наблюдаемыми результатами
- Разрабатывать универсальный Python-пробник для проверки разных конфигураций HTTP(S)-запросов
- Находить и исправлять причины пяти независимых неисправностей, повторяя исходные запросы до подтверждённого HTTP 200
- Возвращать учебные конфигурации в исходное состояние после диагностики и проверять воспроизводимость отказов
О курсе
Для кого этот курс
Начальные требования
🧠 Начальные знания
- Вы умеете запускать программы Python, ориентируетесь в функциях, импортах и исключениях.
- Вы знакомы с командной строкой и базовыми действиями Git.
- Вы представляете, что клиент отправляет HTTP-запрос и получает ответ; подробная сетевая подготовка не требуется.
🛠️ Инструменты и окружение
- Python 3.12 и возможность создать виртуальное окружение.
- Git и личный аккаунт GitHub для собственной копии открытого учебного проекта.
- curl с HTTPS и локальный loopback-интерфейс.
- Python-зависимости FastAPI, Uvicorn, HTTPX, pytest и trustme из закреплённого
requirements.txtучебного проекта. - Для Windows, macOS и Ubuntu Linux в уроках приведены отдельные команды подготовки и проверки окружения.
Для первоначальной установки зависимостей понадобится интернет. После установки основная практика должна работать без внешних сетевых сервисов.
🧭 Чего не потребуется
Docker, Kubernetes, платные API, личный TLS-сертификат, доступ к рабочим системам, изменение DNS, /etc/hosts, системных доверенных CA или прав администратора.
💰 Формат и стоимость
Курс бесплатный, ориентировочно 5–7 часов самостоятельной работы. Вопросы проверяются автоматически; практические результаты вы проверяете локально с помощью команд и pytest. Ручная рецензия не предусмотрена.
Преподаватели курса
Как проходит обучение
🌐 Один запрос, несколько возможных причин сбоя. Объяснения и вопросы помогают выбрать следующую проверку, а локальный HTTP/HTTPS-стенд сразу показывает её результат.
- 🔎 Исследуете симптомы: различаете ошибки DNS, соединения, TLS и ответы приложения.
- 🛠️ Меняете клиент: собираете диагностические наблюдения через curl и Python.
- ✅ Подтверждаете вывод: повторяете запрос и запускаете тесты, чтобы отличить исправление от случайного успеха.
Что вы получите
- Собственная копия открытой учебной лаборатории с готовым локальным HTTP/HTTPS-сервисом FastAPI и контролируемыми сетевыми ошибками
- Диагностические скрипты на Python для проверки разрешения имени, соединения и выбора следующей проверки по симптому
- Собственный HTTPX-клиент с раздельной обработкой HTTP-ответов, ошибок подключения и таймаутов
- Набор локальных тестов pytest для успешных запросов, HTTP-статусов, ошибок соединения и TLS
- Универсальный case_probe.py и результаты самостоятельного восстановления пяти неисправных HTTP(S)-запросов
- Исправленные учебные конфигурации с подтверждёнными ответами HTTP 200 и проверкой возврата к исходным ошибочным сценариям