Term
Principle - Client–server |
|
Definition
By separating the user interface concerns from the data storage concerns, we improve the portability of the user interface across multiple platforms and improve scalability by simplifying the server components |
|
|
Term
|
Definition
Each request from client to server must contain all of the information necessary to understand the request, and cannot take advantage of any stored context on the server. Session state is therefore kept entirely on the client |
|
|
Term
|
Definition
Cache constraints require that the data within a response to a request be implicitly or explicitly labeled as cacheable or non-cacheable. If a response is cacheable, then a client cache is given the right to reuse that response data for later, equivalent requests |
|
|
Term
Principle - Uniform interface |
|
Definition
By applying the software engineering principle of generality to the component interface, the overall system architecture is simplified and the visibility of interactions is improved. In order to obtain a uniform interface, multiple architectural constraints are needed to guide the behavior of components. REST is defined by four interface constraints: identification of resources; manipulation of resources through representations; self-descriptive messages; and, hypermedia as the engine of application state. |
|
|
Term
Principle - Layered system |
|
Definition
The layered system style allows an architecture to be composed of hierarchical layers by constraining component behavior such that each component cannot “see” beyond the immediate layer with which they are interacting |
|
|
Term
Principle - Code on demand (optional) |
|
Definition
REST allows client functionality to be extended by downloading and executing code in the form of applets or scripts. This simplifies clients by reducing the number of features required to be pre-implemented |
|
|
Term
|
Definition
Reduce bandwidth Reduce latency Reduce load on servers Hide network failures |
|
|
Term
Cache Http response headers |
|
Definition
|
|
Term
Cache Response Header - Expires |
|
Definition
The Expires HTTP header specifies an absolute expiry time for a cached representation. Beyond that time, a cached representation is considered stale and must be re-validated with the origin server. To indicate that a representation never expires, a service can include a time up to one year in the future |
|
|
Term
Cache Response Header - Cache-Control |
|
Definition
The header value comprises one or more comma-separated directives. These directives determine whether a response is cacheable, and if so, by whom, and for how long e.g. max-age or s-maxage directives. |
|
|