REST架构概述

REST概述
  REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。

原则条件
  REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
  Web 应用程序最重要的 REST 原则是:

  (1)客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。
  (2)在服务器端,应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用 URI (Universal Resource Identifier) 得到一个唯一的地址。所有资源都共享统一的接口,以便在客户端和服务器之间传输状态。使用的是标准的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。Hypermedia 是应用程序状态的引擎,资源表示通过超链接互联。

分层系统
  另一个重要的 REST 原则是分层系统,这表示组件无法了解它与之交互的中间层以外的组件。通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进了底层的独立性。
当 REST 架构的约束条件作为一个整体应用时,将生成一个可以扩展到大量客户端的应用程序。它还降低了客户端和服务器之间的交互延迟。统一界面简化了整个系统架构,改进了子系统之间交互的可见性。REST 简化了客户端和服务器的实现。

时间: 2024-10-11 06:03:06

REST架构概述的相关文章

Scrapy架构概述

Scrapy架构概述 1, 从最初自己编写的spiders,获取到start_url,并且封装成Request对象. 2,通过engine(引擎)调度给SCHEDULER(Requests管理调度器). 3,SCHEDULER管理ENGINE传递过来的所有Requests,通过优先级,传递给ENGINE. 4,ENGINE 将传递过来的Request对象传递给Downloader(下载器),但是在传递之间会通过MiddleWare(中间件)对Requests进行包装,添加头部,代理IP之类的.

JavaEE体系架构概述、MyBatis总结

JavaEE体系架构概述 java EE是sum公司发布的标准企业级应用规范集合,它提供了一个多层结构的分布式应程序模型,是开发基于网络的企业级应用首选平台.Java EE技术平台的核心思想是“容器”加组件 事务:有明确边界的一组序列,在应用程序中一个请求对应一个事务,当请求发送时,事务开始,当请求结束,事务也就结束.总的来说,事务有四个特性:1.原子性,一个请求要么成功,要么失败,不会再有其他情况:2.一致性,事务处理需要的和得到的时相同的:3.持久性,事务处理的结果时确认的.持久的,如果需要

大型互联网架构概述

本文旨在简单介绍大型互联网的架构和核心组件实现原理. 理论上讲,从安装配置,最佳实践以及源码来剖析各个组件,这个自然是极好的.由于笔者时间以及知识有限,有很多知识没有在工作中亲自实践的机会.所以有些地方语焉不详,还请大家多多指教. 大型互联网架构 解决问题的通用思路是将分而治之(divide-and-conquer),将大问题分为若干个小问题,各个击破.在大型互联网的架构实践中,无一不体现这种思想. 架构目标 低成本:任何公司存在的价值都是为了获取商业利益.在可能的情况下,希望一切都是低成本的.

基于ONOS的SDN-IP架构概述篇

编者按:SDN-IP是ONOS上的一个应用程序,允许软件定义网络使用标准的边界网关协议(BGP)连接到外部网络.从BGP角度看,SDN网络表现为单一的自治系统(AS),其行为与任何传统的AS一样.基于AS的SDN-IP应用提供BGP和ONOS之间的集成整合机制,在协议层SDN-IP的行为作为一个有规则的BGP发言人.从ONOS的角度来看,它只是使用其服务,在SDN数据平面安装和更新相应的转发状态的应用程序. 1 架构目标  1.1 SDN-IP设计目标 (1)兼容性Compatibility:S

微信牛牛平台制作服务器端架构概述

微信牛牛平台制作服务器端架构概述,平台制作教程联系QQ:212303635,官方网站(aqiulian.com) 架构的分析模型 一. 讨论的背景 现代电子游戏,基本上都会使用一定的网络功能.从验证正版,到多人交互等等,都需要架设一些专用的服务器,以及编写在服务器上的程序.因此,游戏服务器端软件的架构,本质上也是游戏服务器这个特定领域的软件架构. 软件架构的分析,可以通过不同的层面入手.比较经典的软件架构描述,包含了以下几种架构: 运行时架构--这种架构关心如何解决运行效率问题,通常以程序进程图

LAMP+LNMP(一) LAMP架构概述

一.LAMP架构概述 LAMP就是 Linux.Apache(httpd).MySQL.PHP四个东东的统称,我们常见的大部分网站都是由这个体系提供的,比如google.Taobao.51CTO等等.其中 Linux是操作系统,是其他三个东东的宿主,企业中一般使用CentOS7.CentOS6等等. Apache是直接面对用户的,用户发送http请求后由他决定提供哪些相应的内容. MyAQL是一种关系型数据库管理系统,你可以把他简单理解为多个大型的Excel表,他记录了网站中文字的东西,比如用户

Linux集群架构概述

Linux集群架构概述 根据功能划分:两大类:高可用和负载均衡高可用集群通常为两台服务器,一条工作,另外一台作为冗余,当提供服务的机器宕机,(rongyu)冗余将接替继续提供服务(适合不能出现宕机的服务器)实现高可用的开源软件有:heartbeat.keeplived负载均衡集群,需要有一台服务器作为分发器,他负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2实现负载均衡的开源软件有 LVS.keepalivd.haproxy

1.微服务架构概述

                                          微服务架构概述 1.0单体架构是什么?         一个归档包包含了应用所有功能的应用程序, 我们通常称之为单体应用. 架构单体应用的架构风格, 我们称之为单体架构, 这是一种比较传统的架构风格. 1.1. 单体应用架构存在的问题 复杂性逐渐变高 技术债务逐渐上升 部署速度逐渐变慢 阻碍技术创新 无法按需伸缩 1.2. 如何解决单体应用架构存在的问题 1.3. 什么是微服务 Martin Fowler:简而言

MySQL逻辑架构概述

1.MySQL逻辑架构 MySQL逻辑架构图 MySQL逻辑架构分四层 1.连接层:主要完成一些类似连接处理,授权认证及相关的安全方案. 2.服务层:在 MySQL据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,SQL接口,SQL解析,SQL分析优化, 缓存查询的处理以及部分内置函数执行(如日期,时间,数学运算,加密)等等.各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视图等. 3.引擎层:是底层数据存取操作实现部分,由多种存储引擎共同组成.真正负责MySQL中数

Java生鲜电商平台-微服务架构概述

Java生鲜电商平台-微服务架构概述 单体架构存在的问题 在传统的软件技术架构系统中,基本上将业务功能集中在单一应用内,或者是单一进程中.尽管现代化的软件架构理论以及设计原则已推广多年,但实际技术衍化的速度迟缓并且变革动力不足. 其中的原因存在着复杂性以及多样性,我想主要的原因是没有一套整体的解决方案能够让工程师在面临稳定性风险下,毅然决然地实施系统重构.当系统应用规模随着业务的迅速发展时,系统的重要性愈发突出,开发人员将对系统的改造尤为敏感,从之前的徘徊犹豫,随之变得更加保守,只能延续过去的技