Данный проект представляет собой мини TCP сервер реализованный на Python Сервер работает поверх TCP-сокета, принимает сырые HTTP-запросы, парсит их, логирует информацию и формирует корректный HTTP-ответ
- Прием HTTP запросов через TCP
- Ручной парсинг запросов
- Формирование HTTP ответа
- Логирование
. ├── PYTHON_TCP_SERVER/ # Корневая папка проекта │ ├── src/ # Исходный код │ │ ├── data/ │ │ │ ├── shell.log # Файл логов │ │ ├── __init__.py │ │ ├── handler.py # Обработка TCP-запросов │ │ ├── http_parser.py # Парсинг HTTP-заголовков │ │ ├── logger.py # Конфигурация логгера │ │ ├── tcp_server.py # Основной TCP-сервер │ ├── tests/ # Тесты │ │ ├── __init__.py │ │ ├── conftest.py # Конфигурация тестов │ │ ├── test_handler.py # Тест handler.py │ │ ├── test_parser.py # Тест http_parser.py │ │ ├── test_server.py # Тест tcp_server.py │ ├── .gitignore # Игнорируемые файлы │ ├── .pre-commit-config.yaml # Настройки pre-commit │ ├── pyproject.toml # Конфигурация проекта │ ├── requirements.txt # Зависимости проекта │ ├── README.md .
Сервер принимает любой HTTP-запрос, отправленный через TCP-клиента(удобно через curl, ncat):
GET /test HTTP/1.1 Host: localhost
- Пользователь отправляет HTTP Запрос
- Сервер принимает сырые байты
- Парсер извлекает путь заголовки и тело запроса
- Handler получает данные и формирует ответ
- Сервер собирает HTTP ответ и отдает его клиенту