Trên thực tế, RESTfulness chỉ áp dụng cho TÀI NGUYÊN, như được chỉ định bởi Mã định danh tài nguyên chung. Vì vậy, để thậm chí nói về những thứ như tiêu đề, cookie, vv liên quan đến REST là không thực sự phù hợp. REST có thể hoạt động trên bất kỳ giao thức nào, mặc dù nó được thực hiện thường xuyên qua HTTP.
Công cụ xác định chính là đây: nếu bạn gửi một cuộc gọi REST, là một URI, thì một khi cuộc gọi thực hiện thành công đến máy chủ, URI đó có trả lại cùng một nội dung không, giả sử không có chuyển đổi nào được thực hiện (PUT, POST, DELETE) ? Thử nghiệm này sẽ loại trừ các lỗi hoặc yêu cầu xác thực được trả về, vì trong trường hợp đó, yêu cầu chưa được gửi đến máy chủ, nghĩa là servlet hoặc ứng dụng sẽ trả về tài liệu tương ứng với URI đã cho.
Tương tự, trong trường hợp POST hoặc PUT, bạn có thể gửi URI / payload nhất định không, và bất kể bạn gửi tin nhắn bao nhiêu lần, nó sẽ luôn cập nhật cùng một dữ liệu, để các GET tiếp theo sẽ trả về kết quả nhất quán?
REST là về dữ liệu ứng dụng, không phải về thông tin cấp thấp cần thiết để truyền dữ liệu đó.
Trong bài đăng trên blog sau đây, Roy Fielding đã đưa ra một bản tóm tắt hay về toàn bộ ý tưởng REST:
http://groups.yahoo.com/neo/groups/rest-discuss/conversations/topics/5841
"Một hệ thống RESTful tiến triển từ trạng thái ổn định sang trạng thái tiếp theo và mỗi trạng thái ổn định như vậy vừa là trạng thái bắt đầu tiềm năng vừa là trạng thái kết thúc tiềm năng. Tức là, hệ thống RESTful là một số thành phần không xác định tuân theo một bộ đơn giản các quy tắc sao cho chúng luôn ở trạng thái REST hoặc chuyển từ trạng thái RESTful sang trạng thái RESTful khác. Mỗi trạng thái có thể được hiểu hoàn toàn bởi (các) đại diện mà nó chứa và tập hợp các chuyển đổi mà nó cung cấp, với các chuyển đổi giới hạn trong một thống nhất Hệ thống có thể là một sơ đồ trạng thái phức tạp, nhưng mỗi tác nhân người dùng chỉ có thể nhìn thấy một trạng thái tại một thời điểm (trạng thái ổn định hiện tại) và do đó mỗi trạng thái là đơn giản và có thể được phân tích độc lập. người dùng, OTOH, có thể tạo chuyển tiếp của riêng họ bất cứ lúc nào (ví dụ: nhập URL, chọn dấu trang,mở một trình soạn thảo, v.v.). "
Đi đến vấn đề xác thực, cho dù nó được thực hiện thông qua cookie hay tiêu đề, miễn là thông tin không phải là một phần của tải trọng URI và POST, nó thực sự không liên quan gì đến REST. Vì vậy, liên quan đến việc không quốc tịch, chúng tôi chỉ nói về dữ liệu ứng dụng.
Ví dụ: khi người dùng nhập dữ liệu vào màn hình GUI, máy khách sẽ theo dõi những trường nào đã được nhập, trường nào không, bất kỳ trường bắt buộc nào bị thiếu, v.v ... Đây là tất cả TIẾP TỤC KHÁCH HÀNG, và không nên gửi hoặc theo dõi bởi máy chủ. Những gì được gửi đến máy chủ là tập hợp đầy đủ các trường cần được sửa đổi trong tài nguyên IDENTifyED (bởi URI), sao cho quá trình chuyển đổi xảy ra trong tài nguyên đó từ trạng thái RESTful này sang trạng thái RESTful khác.
Vì vậy, khách hàng theo dõi những gì người dùng đang làm và chỉ gửi các chuyển trạng thái hoàn thành logic đến máy chủ.