вот как вы сказали, так и есть - это способ взаимодействия и обмена данными сервера и клиента
данные на клиенте, промежуточные состояния данных не хранятся на сервере, данные можно кэшировать
данные могут быть в виде json, html, xml
URI, унифицированный интерфейс доступа к данным, вместо бесконечного серверного кода с запросами к бд для каждого проекта по отдельности
в википедии английской все подробно написано, может и на русский так же хорошо перевели