Минута теории: Разбираемся с RESTful-приложениями

https://codewords.recurse.com/issues/five/what-restful-actually-means
  • Перевод
Мы достаточно регулярно рассказываем как о собственных разработках, так и экспертном опыте, связанном с веб-технологиями. Недавно мы рассматривали кейс с масштабированием веб-приложения на Ruby и говорили о том, как можно ускорить загрузку веб-страниц.

Сегодня мы решили разобраться с терминологией и рассмотреть термин, который всем хорошо знаком. Речь идет о RESTful-приложениях. В этом нам помог материал Лорен Лонг (Lauren Long), которая работает в компании Recurse Center.



/ Фото Juhan Sonin / CC

Мало кто мог пройти мимо термина REST. Его употребляют в том числе и применительно к категории RESTful-приложений. Если развернуть аббревиатуру, то вы увидите Representational State Transfer или «передачу информации о состоянии».

Данный термин предложил Рой Филдинг (Roy Fielding) в своей диссертации, которая уже стала классикой в сфере веб-технологий. Он сформулировал основные принципы устройства Сети в виде определенного инструментария или архитектурной парадигмы. Для того, чтобы отнести то или иное приложение к типу RESTful, необходимо, чтобы оно удовлетворяло этим принципам.

1. Основной момент — клиент-свервеное взаимодействие. Противоположный пример — event-based-архитектура — здесь уже не будет работы «один на один».

2. Stateless-подход — для полноценной работы клиенту и серверу не нужно хранить информацию о прежнем состоянии друг друга. Каждый отдельный запрос является вполне самостоятельным.

3. Типовые протоколы взаимодействия — от URI и HTTP до JSON-формата — четко обусловленные интерфейсы, которые дают двум сторонам всю необходимую информацию для работы (self-descriptive). Здесь важно понимать, что каждое из взаимодействий автономно (п.2).

4. Дополнительные условия заключаются в наличии кэширования (возможность хранения self-descriptive ответов), допущение многоуровневой системы взаимодействия клиента и сервера (прокси, балансировка нагрузки), шлюзы и кодировка по запросу (необязательное условие, пример — JavaScript).

На этом все. Сегодня мы разобрались с одним из наиболее популярных терминов и потратили на это всего пару минут вашего времени. Надеемся, что получилось полезно и понятно.
Метки:
  • +9
  • 24,7k
  • 7
1cloud.ru 164,41
IaaS, VPS, VDS, Частное и публичное облако, SSL
Поделиться публикацией
Похожие публикации
Комментарии 7

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое