Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
REST
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Architectural properties == The REST architectural style is designed for network-based applications, specifically client-server applications. But more than that, it is designed for Internet-scale usage, so the coupling between the ''user agent'' (client) and the ''origin server'' must be as [[Loose coupling|loose]] as possible to facilitate large-scale adoption. The strong decoupling of client and server together with the text-based transfer of information using a uniform addressing protocol provided the basis for meeting the requirements of the Web: [[extensibility]], anarchic scalability<ref>{{cite thesis|title=Architectural Styles and the Design of Network-based Software Architectures|chapter=Chapter 4: Designing the Web Architecture: Problems and Insights|year=2000|publisher=University of California, Irvine|chapter-url=https://ics.uci.edu/~fielding/pubs/dissertation/web_arch_domain.htm|first=Roy Thomas|last=Fielding|type=Ph.D.|access-date=2025-01-28|url-status=live}}</ref> and independent deployment of components, large-grain data transfer, and a low entry-barrier for content readers, content authors and developers. [[File:REST information model.svg|centre|900px|thumb|An [[entity–relationship model]] of the concepts expressed in the REST architectural style]] The constraints of the REST architectural style affect the following architectural properties:<ref name="Fielding-Ch5" /><ref name="SOA with REST" /> * Performance in component interactions, which can be the dominant factor in user-perceived performance and network efficiency;<ref name="Fielding-Ch2">{{cite thesis|title=Architectural Styles and the Design of Network-based Software Architectures|chapter=Chapter 2: Network-based Application Architectures|year=2000|publisher=University of California, Irvine|chapter-url=http://www.ics.uci.edu/~fielding/pubs/dissertation/net_app_arch.htm|first=Roy Thomas|last=Fielding|type=Ph.D.|access-date=2014-04-12|archive-date=2014-12-16|archive-url=https://web.archive.org/web/20141216114322/http://www.ics.uci.edu/~fielding/pubs/dissertation/net_app_arch.htm|url-status=live}}</ref> * [[Scalability]] allowing the support of large numbers of components and interactions among components; * Simplicity of a uniform interface; * Modifiability of components to meet changing needs (even while the application is running); * Visibility of communication between components by service agents; * Portability of components by moving program code with the data; * Reliability in the resistance to failure at the system level in the presence of failures within components, connectors, or data.<ref name="Fielding-Ch2"/>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)