# Работа с сетевыми соединениями в Python ## Описание проекта Практическая работа по изучению основ работы с сетевыми соединениями в Python. Реализованы клиент-серверные приложения по протоколам TCP и UDP, выполнен анализ сетевого трафика в Wireshark, проведено сравнение HTTP-запросов через socket и requests, а также выполнено взаимодействие с API Gitea. --- ## Используемые протоколы и методы | Протокол/метод | Назначение | |----------------|------------| | **TCP** | Надёжная передача данных с установкой соединения | | **UDP** | Быстрая передача данных без установки соединения | | **HTTP (socket)** | Низкоуровневая отправка HTTP-запросов | | **HTTP (requests)** | Высокоуровневая работа с HTTP-запросами | | **Gitea API** | Взаимодействие с Git-сервером через REST API | | **Wireshark** | Анализ сетевого трафика | 1. **TCP vs UDP** - TCP надёжный, но медленный. Используется для веб-сайтов, почты, файлов. - UDP быстрый, но может терять данные. Используется для видео, игр, звонков. 2. **socket vs requests** - `requests` удобнее для реальной разработки: автоматические заголовки, редиректы, меньше кода. - `socket` подходит для низкоуровневого контроля и изучения протокола HTTP. 3. **Анализ Wireshark** - Зафиксировано трёхстороннее рукопожатие TCP (SYN, SYN-ACK, ACK) - Зафиксирована передача данных с флагом PSH, ACK - Зафиксировано завершение соединения (FIN, ACK) - В UDP подтверждено отсутствие установки соединения 4. **API Gitea** - Токены должны храниться в `.env` и не попадать в Git - Для чтения нужны права `read:user` - Для создания репозитория нужны права `write:repository`