Какие правила архитектуры REST вы знаете?

Клиент-серверная архитектура: Четкое разделение обязанностей между клиентом, запрашивающим ресурсы, и сервером, предоставляющим их.

Короткий ответ

Что ответить на собеседовании

Клиент-серверная архитектура: Четкое разделение обязанностей между клиентом, запрашивающим ресурсы, и сервером, предоставляющим их. Отсутствие состояния (Stateless): Каждый запрос от клиента к серверу должен содержать всю необходимую информацию для понимания и обработки запроса. Сервер не хранит информацию о предыдущих запросах клиента. Кэшируемость (Cacheable): Ответы от сервера могут быть помечены как кэшируемые или некэшируемые, что позволяет клиентам переиспользовать полученные ответы для повышения производительности. Единообразный интерфейс (Uniform Interface): Четыре ограничения:

Подробный разбор

Ответ с пояснениями

  1. Клиент-серверная архитектура: Четкое разделение обязанностей между клиентом, запрашивающим ресурсы, и сервером, предоставляющим их.

  2. Отсутствие состояния (Stateless): Каждый запрос от клиента к серверу должен содержать всю необходимую информацию для понимания и обработки запроса. Сервер не хранит информацию о предыдущих запросах клиента.

  3. Кэшируемость (Cacheable): Ответы от сервера могут быть помечены как кэшируемые или некэшируемые, что позволяет клиентам переиспользовать полученные ответы для повышения производительности.

  4. Единообразный интерфейс (Uniform Interface): Четыре ограничения:

    • Идентификация ресурсов (Identification of resources): Ресурсы идентифицируются с помощью URI.
    • Манипуляции ресурсами через представления (Manipulation of resources through representations): Клиент взаимодействует с ресурсом через передачу представлений ресурса.
    • Самоописывающиеся сообщения (Self-descriptive messages): Каждое сообщение содержит достаточно информации, чтобы понять, как его обработать (например, тип содержимого).
    • HATEOAS (Hypermedia as the Engine of Application State): Клиент переходит между ресурсами, следуя ссылкам в ответах сервера.
  5. Многоуровневая система (Layered System): Архитектура позволяет использовать промежуточные слои (например, прокси-серверы, шлюзы) между клиентом и сервером, не влияя на их взаимодействие.

  6. Код по требованию (Code on Demand - Optional): Сервер может временно расширять или настраивать функциональность клиента, передавая исполняемый код (например, JavaScript). Является необязательным правилом.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее