表征性状态转移(REST)是一种编程架构实现,旨在提高计算系统的通信效率。它体现了这样一个理念:在多方之间共享大量数据的最佳方式是通过共享数据的引用而不是数据本身的完整副本,使数据按需提供。实现REST的系统被称为"RESTful"系统。
一个非RESTful现实世界系统的例子是传统的家庭电影收藏。为了访问任何给定的电影,图书馆所有者必须获得它的物理副本。这导致了大量的浪费,因为在任何给定的时刻,存在的拷贝都比使用中的拷贝多。此外,将新的影片添加到库中所需的时间一般都是非同小可的。流媒体视频是与家庭图书馆相对应的RESTful。家庭中存储的每部电影都有一个完整的副本,而不是通过标题来引用电影,电影的内容是按需流式传输的。
万维网是当今最大的RESTful系统的例子。实体图书馆是它的非RESTful对应物。我们不是将每个数字资源的物理电子副本发送给每个人或图书馆,而是给每个资源分配一个URL标识符"http://example.com",然后通过互联网访问实际内容,而不是从光盘或硬盘上检索本地副本。
REST架构可以应用在其他情况下。例如,考虑两个公司,它们希望共享多个千兆字节的信息,这些信息不断变化。定期向对方发送他们数据库的完整副本(甚至通过互联网)是一个浪费和耗时的过程。这种共享信息的方法与前面举的图书馆例子类似。相反,各公司可以互相共享数据库ID,甚至可能给数据库中的每个项目分配自己的URL。当一家公司想在数据库中查询属于另一家公司的某一物品的价格时,它就可以检索到该特定库存物品的数据。