Что такое RESTfull приложения?

Обьясните пожалуйста, что такое RESTfull приложения?

RESTful приложения - это приложения, которые соответствуют архитектурному стилю REST.

REST - Representation State Transfer. Идея заключается в том, что запрос ресурса с сервера переводит приложение в определённое состояние. Следующий запрос это состояние, как результат, меняет. Затем он возвращается, но не в виде сырых данных, вытянутых из БД, а в виде представления.

Существует 5 основных принципов REST:

1. Каждый объект должен иметь свой Id.

2. Объекты должны быть связаны по-логике.

3. Используйте стандартные методы HTTP

4. Одни и те же ресурсы можно вернуть в разных представлениях: в каком-то удобном для машины формате или понятном представлении для пользователя.

5. RESTful сервис должен прямо отвечать на запрос, независимо ни от чего (истории запросов и тд). Проще говоря, если пользователь 300 раз нажмёт на одну и ту же кнопку, результат должен быть таким же, что и при однократном нажатии.