1) Client-server
2) Stateless
3) Cacheable or noncacheable constraints
4) Uniform interface
5) Abstracted so that you can only see the layers directly in front of you.
6) Client side code, e.g., Javascript
7) (Potentially) Late binding of reference to representation
8) "The connector interface is similar to procedural invocation, but with important differences in the passing of parameters and results. The in-parameters consist of request control data, a resource identifier indicating the target of the request, and an optional representation. The out-parameters consist of response control data, optional resource metadata, and an optional representation."
But a lot of what is described as REST imposes additional constraints that I don't see in this description. Did I miss something?