Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

Python_TCP_server

Описание

Данный проект представляет собой мини 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 ответ и отдает его клиенту

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages