REST - REpresentational State Transfer
REST - это способ доступа к удаленным документам и ресурсам по простой программной архитектуре, представленной API. Говорят, «RESTful» сайты используют эту модель связи.
Определение имени: Represential State Transfer можно понять как описание режима передачи, в котором каждый запрос содержит всю информацию, необходимую для связи между клиентом и сервером (обычно это URL и параметры в режиме GET или POST). Клиент отправляет запрос и получает представление ресурса в его текущем состоянии .
Например, если клиент хочет получить страницу, он отправляет ее URL-адрес на сервер. Сервер считает его ресурсом, который берет в текущем состоянии (документ, обозначенный URL, может развиваться, особенно если это веб-страница) и отправляет клиенту копию, представление текущего состояния.
Очевидно, что этот выбор терминов стал предметом определенного объединения со стороны автора модели (Роя Филдинга), чтобы получить название REST, что означает «быть спокойным» на английском языке и является идеей, которую он хотел дать: простая и безопасная система.
Web (World Wide Web) - приложение архитектуры REST, это вплоть до появления WebSocket и WebRTC. Однако архитектура REST не обязательно использует HTTP или Web.

Альтернативы - SOAP, RPC, с XML или JSON для формата файла.
А также WebSockets. Он позволяет получать уведомления от сервера, что не входит в архитектуру REST. Он лучше подходит для быстрого и постоянного обмена, а REST более экономичен в пропускной способности, подходит для более точечных запросов.
Как работает REST
Его архитектура определяется следующим образом:
- Состояния и функции удаленного приложения считаются ресурсами.
- Доступ к каждому ресурсу осуществляется только в стандартном формате адреса. Это гипертекстовые ссылки (или гипермедия). Под HTTP будет URI.
- Ресурсы имеют стандартный интерфейс, в котором точно определены операции и типы данных. Например, XML или JSON, или HTML.
- Обмен данными осуществляется по протоколу, который имеет следующие свойства :
- Клиент-сервер.
- Без состояний (представленных переменными).
- Включает кэширование.
- Многоуровневое программное обеспечение.
- Независимость интерфейса от добавленных сервисов, таких как прокси, firewalls и других.
Команды HTTP
Для доступа к ресурсам сервера используются команды HTTP.
GET для запроса данных, например, загрузки страницы, путем отправки пар ключ/значение в URL.
POST для отправки данных на сервер, например данных формы, в сообщении HTTP (а не URL), где их обрабатывает скрипт.
Другие команды все еще существуют, но используются редко: PUT (замена) и DELETE (удаление).
Использование сессионных cookie, сохраняя данные, относящиеся к сервису, аннулирует свойство «без состояния» и может сделать услугу менее эффективной.
Преимущества REST
- Реализовать проще, чем классические альтернативы (о WebSockets речь не идет).
- Для доступа к сервису достаточно браузера.
- Кэширование ресурсов, поэтому ускорение операций.
- Меньше потребления памяти.
- Возможность распределения запросов по нескольким серверам. Это благодаря отсутствию государств.
- Использование стандартных форматов, таких как HTML или XML, обеспечивает временную совместимость .
- Можно обмениваться запросами между различными приложениями или носителями, поскольку они представлены URI.
Неудобства
- Данные, необходимые для использования веб-службы, должны храниться локально.
- Менее безопасны, чем архитектуры на основе протокола, такие как SOAP .
Ссылки и ресурсы: Диссертация Роя-Филдинга. Перевод документа, вдохновившего архитектуру REST. Оригинал на английском языке .