На самом деле, RESTfulness применяется только к РЕСУРСАМ, как указано универсальным идентификатором ресурса.Поэтому даже говорить о таких вещах, как заголовки, файлы cookie и т. Д. В отношении REST, не совсем уместно.REST может работать по любому протоколу, даже если он обычно выполняется по HTTP.
Основным определителем является следующее: если вы отправляете вызов REST, который является URI, то, как только вызов делает его успешносервер, этот URI возвращает тот же контент, предполагая, что переходы не были выполнены (PUT, POST, DELETE)?Этот тест исключает возврат ошибок или запросов на аутентификацию, поскольку в этом случае запрос еще не поступил на сервер, то есть сервлет или приложение, которое будет возвращать документ, соответствующий данному URI.
Аналогично, в случае POST или PUT, можете ли вы отправить данный URI / полезную нагрузку, и независимо от того, сколько раз вы отправляете сообщение, оно всегда будет обновлять одни и те же данные, чтобы последующие GET возвращали согласованный результат?
REST относится к данным приложения, а не к информации низкого уровня, необходимой для передачи этих данных.
В следующем сообщении в блоге Рой Филдинг дал хорошее резюме всей идеи REST:
http://groups.yahoo.com/neo/groups/rest-discuss/conversations/topics/5841
"RESTful-система переходит от одного устойчивого состояния кзатем, и каждое такое устойчивое состояние является как потенциальным начальным состоянием, так и потенциальным конечным состоянием. Т.е. система RESTful представляет собой неизвестное число компонентов, подчиняющихся простому набору правил, так что они всегда находятся либо в REST, либо в переходном состоянии.из одного состояния RESTful в другое состояние RESTful. Каждое состояние может быть полностью понято представлением (ями), которое оно содержит, и набором переходов, которые оно обеспечивает, с переходами, ограниченными единообразным набором действий, которые должны быть понятны.сложная диаграмма состояний, но каждый пользовательский агент может видеть только одно состояние за раз (текущее устойчивое состояние), и, таким образом, каждое состояние является простым и может быть проанализировано независимо.в любое время (например, введите URL, выберите закладку, откройте редактор и т. д.). "
Переходя к вопросу аутентификации, независимо от того, выполняется ли она с помощью файлов cookie или заголовков, если информация не является частью полезной нагрузки URI и POST, она на самом деле не имеет ничего общего с REST.Итак, что касается отсутствия состояния, мы говорим только о данных приложения.
Например, когда пользователь вводит данные в экран графического интерфейса, клиент отслеживает, какие поля были введены, которые имеютнет, какие-либо обязательные поля, которые отсутствуют и т. д. Это все КЛИЕНТСКИЙ КОНТЕКСТ, и его не следует отправлять или отслеживать сервером.На сервер отправляется полный набор полей, которые необходимо изменить в ресурсе IDENTIFIED (посредством URI), чтобы в этом ресурсе происходил переход из одного состояния RESTful в другое.
Итакклиент отслеживает, что делает пользователь, и отправляет на сервер только логически завершенные переходы состояний.