Этот вопрос проверяет знание основных сетевых протоколов и архитектурных стилей для построения API.
REST — это архитектурный стиль, основанный на HTTP и обработке отдельных запросов. WebSocket — двусторонний постоянный канал связи. REST хорошо подходит для обычных CRUD-операций, WebSocket — для чатов, стриминга и событий. Принципы REST определяют, как должен выглядеть API: отсутствие состояния, единообразие интерфейсов и четкая ресурсная модель.
REST — архитектурный стиль взаимодействия через HTTP запрос/ответ, WebSocket — протокол двухстороннего постоянного соединения.
Характеристики:
Каждое сообщение — отдельный HTTP-запрос.
Клиент и сервер не хранят состояние друг друга.
Идеален для CRUD-операций и стандартных API.
Пример:
GET /users/10
Характеристики:
Постоянное соединение между клиентом и сервером.
Двусторонняя передача данных в реальном времени.
Используется для чатов, стриминга биржевых данных, онлайн-игр.
Пример (Python, FastAPI):
@app.websocket("/ws")
async def ws_endpoint(websocket):
await websocket.accept()
await websocket.send_text("hello")
Client–Server — разделение логики клиента и сервера
Stateless — отсутствие состояния между запросами
Cacheable — возможность кеширования
Uniform Interface — единообразный интерфейс
Layered System — сервер может состоять из нескольких слоёв
Code on Demand (опционально) — сервер может отправлять исполняемый код
REST удобен для привычных API, WebSocket — для задач реального времени.
Уровень
Рейтинг:
5
Сложность:
4
Навыки
FastAPI
Networks
Ключевые слова
Подпишись на Python Developer в телеграм