ДЗ 2.2 — Request
Дедлайн 15.11.2025 в 20:59
Написать декодер HTTP запросов
Создать класс Request вида:
@dataclass
class Request:
method: str
path: str
proto: str
headers: dict[str, str]
body: str
def from_str(cls, v: str) -> "Request":
...
def to_str(self) -> str:
...Функция from_str принимает на вход сам HTTP запрос в виде строки и должна создавать объект класса Request. Например:
>>> v = """POST /users HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 49
name=FirstName+LastName&email=bsmth%40example.com"""
>>> Request.from_str(v)
>>> Request(method='POST', path='/users', proto="HTTP/1.1", headers={'Host': 'example.com', ...}, ...)Функция to_str возвращает HTTP запрос в виде строки