REST - что это такое

Подробнее о REST см. тут: http://fkn.ktu10.com/?q=node/10262

REST (сокр. англ. Representational State Transfer, «передача представлений состояний» или «передача репрезентативного состояния») стиль построения архитектуры распределенного приложения.

Был описан и популяризован в 2000 году Роем Филдингом (Roy Fielding), одним из создателей протокола HTTP. Самой известной системой, построенной в значительной степени по архитектуре REST, является современная Всемирная паутина.

Концепция

Данные в REST должны передаваться в виде небольшого количества стандартных форматов (например HTML, XML, JSON).
Сетевой протокол (как и HTTP) :

  1. должен поддерживать кэширование,
  2. не должен зависеть от сетевого слоя,
  3. не должен сохранять информацию о состоянии между парами «запрос-ответ».

Утверждается, что такой подход обеспечивает масштабируемость системы и позволяет ей эволюционировать с новыми требованиями.

Противоположность

Антиподом REST является подход, основанный на вызове удаленных процедур (Remote Procedure Call — RPC).

Подход RPC позволяет использовать небольшое количество сетевых ресурсов с большим количеством методов и сложным протоколом.
При подходе REST количество методов и сложность протокола строго ограничены, из-за чего количество отдельных ресурсов может быть большим.