Работал ли с HTTP-сокетами
Python
Middle
Без компании
Работал ли с HTTP-сокетами
Ответы
Да, работал с HTTP-сокетами, используя как низкоуровневые библиотеки (socket), так и высокоуровневые (requests, aiohttp).
Пример простого HTTP-клиента через `socket`:
```
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("example.com", 80))
request = b"GET / HTTP/1.1\r\nHost: example.com\r\n\r\n"
s.send(request)
response = s.recv(4096)
print(response.decode())
s.close()
```
Для асинхронных задач удобнее `aiohttp`:
```
import aiohttp
import asyncio
async def fetch():
async with aiohttp.ClientSession() as session:
async with session.get('https://example.com') as resp:
print(await resp.text())
asyncio.run(fetch())
```
Нюансы:
- Обработка таймаутов, редиректов, SSL.
- Для WebSockets (`ws://`, `wss://`) — отдельные библиотеки (`websockets`).
- В продакшне лучше использовать сессии (пул соединений).