Ответ
REST (Representational State Transfer) — это архитектурный стиль, а не протокол. Он определяет набор ограничений и принципов для построения распределенных веб-сервисов, использующих стандартные протоколы, в первую очередь HTTP.
Ключевые принципы REST:
- Единообразие интерфейса: Ресурсы идентифицируются URI, а операции над ними — стандартными HTTP-методами (GET, POST, PUT, DELETE, PATCH).
- Отсутствие состояния (Stateless): Каждый запрос от клиента должен содержать всю информацию, необходимую серверу для его обработки. Сервер не хранит состояние сессии клиента.
- Кэшируемость: Ответы сервера должны явно указывать, можно ли их кэшировать, чтобы повысить производительность.
- Клиент-серверная архитектура: Четкое разделение обязанностей.
- Слоистая система: Архитектура может состоять из нескольких слоев (прокси, балансировщики, шлюзы), что повышает масштабируемость.
Пример RESTful-запроса (HTTP):
GET /api/users/123 HTTP/1.1
Host: example.com
Accept: application/json
Сервис, построенный по этим принципам, называется RESTful API. Сам же REST — это стиль проектирования, а не протокол.