RESTful 架构与 RESTful 服务
风格 ⇒ 标准 ⇒ 协议 ⇒ 实现
Representational State Transfer,是一种软件架构风格,既然是风格,就非标准或协议,而是定义了一组设计原则和约束条件。具有如下特点:
- 适用于客户端和服务器交互类的软件;
- 基于该风格设计的软件更简洁,更有层次,更易于实现缓存等机制;
- 在REST中,每一个对象都是通过 URL 来表示的
1. 网站即软件
网站即软件,是一种新型的软件。
- 作为软件的网站是一种互联网软件,采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,
- 具有高延时(high latency,受制于带宽)、高并发的特点;
- 软件开发一般针对单机环境,网络则主要研究系统之间的通信;
RESTful 架构的提出,使得网站越来越多地具有软件的属性,通过风格的限制和约束,也使得网站开发能够按照软件开发的方式进行开发。
2. RESTful 架构
REST,representational state transfer,表现层状态转化(还记得 OSI 7层网络模型吗,在网络层、传输层之上又细分为会话层(session layer),表示层(presentation layer))。
- 资源(resources)与资源的展现,表示层状态转移,省略了主语,表现层其实指的是资源的表示层,对资源的展示与表现;
- 资源(resources)就是 URI/URL 的 R;
- 所谓“资源”,就是网络空间中的一个实体,由 URI 唯一指向。它可以是一段文本,一张图片,一首歌曲,甚至是一种服务。
- 一个专门的网站将资源具体呈现出来的形式,叫做它的“表现层”;文本可以用 txt 格式表现,也可用 html 格式、xml 格式、json 格式。URI 仅代表资源,并不指定资源形式。严格说来,某些网页网址(URL)最后的“.html”后缀名是不必要的,后缀名表格式,属“表示层”范畴,而 URL 仅说明资源的位置。那么具体的资源表示(resource representation)应该放在何处呢?通过 HTTP 请求的头信息中用 accept 和 content-type 字段(比如为 text/html)指定,这两个字段是对“表现层”的描述;
- 状态转移(state transfer):访问一个网站,就代表了客户端和服务器的一个交互过程,客户端发出连接或者获取资源的请求,服务器给出响应。自然这个过程中,必然涉及到数据和状态的转化;
- http 的第二个 t 就表示 transfer,转移;
- 互联网通信协议HTTP协议,是一个无状态(stateless)协议。这意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生”状态转化”(State Transfer)。而这种转化是建立在表现层之上的,所以就是”表现层状态转化”。
- 客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。
references
RESTful 架构与 RESTful 服务的更多相关文章
- 论单页Web应用和RESTful架构
单页Web应用 概述 单页Web应用并不是突然诞生的一门新技术,而是web展示的一种新的尝试.它将所有的动作局限于一个Web页面,在加载站点首页的时候就加载站点需要的JavaScript和CSS.单页 ...
- Web应用和RESTful架构
Web应用和RESTful架构 单页Web应用 概述 单页Web应用并不是突然诞生的一门新技术,而是web展示的一种新的尝试.它将所有的动作局限于一个Web页面,在加载站点首页的时候就加载站点需要的J ...
- 【转载】RESTful 架构风格概述
本文转载自https://blog.igevin.info/posts/restful-architecture-in-general/ 在移动互联网的大潮下,随着docker等技术的兴起,『微服务』 ...
- RESTful架构及SOA架构简单解析
1.RESTful架构 本人也是刚接触ASP.NET开发,以下为自己简单的理解,并做了一些记录,表述不当或者错误之处还请指正,在此谢过. 首先,REST(REpresentational State ...
- RESTful 架构风格
在移动互联网的大潮下,『微服务』的概念也越来越被大家接受并应用于实践,日益增多的web service逐渐统一于RESTful 架构风格,如果开发者对RESTful 架构风格不甚了解,则开发出的所谓R ...
- 一文读懂RESTful架构
转载自https://zhuanlan.zhihu.com/p/381554129 RESTful架构究竟是什么 别着急,想要了解RESTful,我们先来了解一位大佬Roy Thomas Fieldi ...
- restful 架构风格的curd(增删改查)
restful架构 概念:REST指的是一组架构约束条件和原则,如果一个架构符合REST的约束条件和原则,就称之为RESTful架构. restful不是一个专门的技术,他是一个规范.规范就是写写代码 ...
- SpringBoot系列十一:SpringBoot整合Restful架构(使用 RestTemplate 模版实现 Rest 服务调用、Swagger 集成、动态修改日志级别)
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringBoot整合Restful架构 2.背景 Spring 与 Restful 整合才是微架构的核心,虽然在整 ...
- [转]移动互联网应用技术架构简介-Restful服务
Restful是基于网络的软件系统架构风格.其优先考虑分布性和扩展性,而不是安全.错误处理.对象映射. 所以Restful架构特别适用的场合为用户快速增长的互联网和移动互联网领域,看起来很容易理解,以 ...
随机推荐
- js等待提示通用类
function WaitingTip (options){ if(!options){ options = { contain ...
- 深入GCD(三): Dispatch Sources
何为Dispatch Sources简单来说,dispatch source是一个监视某些类型事件的对象.当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中.说的 ...
- Go -- 交叉编译
编译Windows程序和mac程序
- Android ZXing 二维码、条形码扫描介绍
本帖最后由 Shims 于 2013-11-9 12:39 编辑 最近公司的Android项目需要用到摄像头做条码或二维码的扫描,Google一下,发现一个开源的 ZXing项目.它提供二维码和条形码 ...
- BUPT复试专题—科学计算器(2009)
题目描述 给你一个不带括号的表达式,这个表达式只包含加.减.乘.除,请求出这个表 达式的最后结果,最后结果一定是整数: 输入 一个数学表达式,只包括数字,数字保证是非负整数,以及五种运算符 " ...
- 转: memcached Java客户端spymemcached的一致性Hash算法
转自:http://colobu.com/2015/04/13/consistent-hash-algorithm-in-java-memcached-client/ memcached Java客户 ...
- Effective C++ 条款六 若不想使用编译器自动生成的函数,就该明确拒绝
class HomeForSale //防止别人拷贝方法一:将相应的成员函数声明为private并且不予实现 { public: private: HomeForSale(const HomeForS ...
- 走入asp.net mvc不归路:[4]说说Action有哪些常见成员
一个控制器中,功能最终会落实到一个个Action中实现,最常见的是增删查改操作.这些Action是一个个的方法,一般返回值是ActionResult,并且是public 方法,可以带参数,可以添加元标 ...
- unknownhostexception错误解决方案
关于java.net.UnknownHostException大家也许都比较熟悉,今天我来整理一下关于java.net.UnknownHostException的各种处理办法: 1.在Android项 ...
- MySQL中insert ignore into, on duplicate key update,replace into,insert … select … where not exist的一些用法总结
在MySQL中进行条件插入数据时,可能会用到以下语句,现小结一下.我们先建一个简单的表来作为测试: CREATE TABLE `books` ( `id` ) NOT NULL AUTO_INCREM ...