TCP_UDP_HTTP_Gitea/README.md
2026-05-08 02:20:39 +03:00

38 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Работа с сетевыми соединениями в 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`