В этом репозитории на практике изучаю работу с сетью из Python.
Разбираемся с работой сокетов на простейших примерах.
- Простейший эхосервер: sockets/echo_server.py
- Клиент для эхосервера: sockets/basic_client.py
socket
— Low-level networking interface- Introducing The Sockets API
- Beej’s Guide to Network Programming – optional, for C devs.
- Socket Programming HOWTO in Python 3.12 documentation.
Изучаем работу DNS.
- DNS resolver (используем библиотеку
dnspython
): dns_resolver/dns_resolver.py - Отправляем запросы к DNS серверу по UDP вручную, резолвим доменное имя в IP (только стандартные средства Python): dns_resolver/dns_raw.py
- Let's hand write DNS messages
- RFC 1035: 4.1.1. Header section format
- IANA List of Root Servers
- Lab 8: Network Socket Programming (Intermediate)
struct
: Byte Order, Size, and Alignmentstruct
: Format Charactersctypes
:BigEndianStructure
Изучаем работу протокола HTTP на практике.
- Простой HTTP-сервер с синхронной обработкой запросов: http_server/http_server.py
Разбираемся со спецификацией WSGI со стороны приложения и сервера.
- Базовое WSGI-приложение (запускается встроенным в Python WSGI-сервером), выводит содержимое словаря
environ
: wsgi/environ.py - Приложение WSGI с простой маршрутизацией, по типу Flask: wsgi/routes.py
- WSGI сервер: wsgi/server.py
Испытать одновременно сервер и приложение:
python server.py routes:application
curl -X GET http://127.0.0.1:8000/hello
curl -X GET http://127.0.0.1:8000/hello/Alexander