REST
REST (Representational state transfer) — стиль архитектуры ПО для распределенных систем, использующийся для создания веб-сервисов. Это набор способов обработки и передачи состояний ресурсов по самому распространенному протоколу HTTP. А если совсем просто, то REST — формат «общения» между браузерной и серверной частью сайта или веб-приложения.
Системы, которые поддерживают эти принципы, называются RESTful, и таких сейчас подавляющее большинство.
В REST у каждой единицы информации есть свой глобальный идентификатор URL. Данные передаются как они есть без дополнительных слоев в виде XML. Он используется только для форматирования запросов, как стандарт для HTTP, но может быть заменен на JSON. Все урлы строятся по строго заданному формату, который не связан с форматом самих данных. Они могут вести как к HTML-странице, так и к отдельной картинке, текстовому файлу и т.д. Управление данными, на которые указывает URL, происходит при помощи методов протокола передачи. Для HTTP это классические — GET, PUT, POST и DELETE.
Разделение интерфейсов обеспечивает слабую связь между компонентами. Клиенты не привязаны к данным, которые хранятся на серверах, а они в свою очередь не связаны с интерфейсом пользователя. Благодаря этому можно вносить изменения в каждый компонент независимо, что упрощает саму систему и ее масштабирование.
Использование stateless-протокола означает, что сервер не будет хранить данные клиентов. Каждый запрос будет независимой транзакцией, со всей необходимой информацией, в том числе и id клиента, в случаях когда это нужно.
Требования к организации клиент-серверного взаимодействия, включающие в себя описанные вначале особенности стиля REST, и другие принципы, в частности, само-документируемые сообщения, гипермедиа, кеширование и так далее.
- Это универсальное решение для любых сайтов и приложений, используемое практически по умолчанию;
- Проект будет легче масштабировать благодаря независимому внедрению компонентов;
- REST хорошо работает в системах с ограниченной пропускной способностью соединения;
- Подходит для создания быстрых и отзывчивых веб-приложений AJAX с частичным обновлением UI, без полной перезагрузки страницы.
REST — классический набор методов для организации веб-служб, т.е. связей между компонентами сайта. Это просто способ организации передачи данных между сервером и браузером. Сам по себе он не привязан к технологиям и протоколам, но учитывая, распространенность протокола HTTP и форматов JSON и XML для веб-служб, используется именно с ними.
REST предусматривает использование HTTP так, как это было задумано его создателями, не расширяя и не перегружая. Это набор максимально простых и нетребовательных к ресурсам программных методов добавления, изменения, получения и удаления информации. Конкуренты REST сейчас значительно ему уступают, и этот стиль архитектуры — решение по умолчанию.