发表于: 2017-03-24 22:32:41
1 1216
一、今天完成的事情:
知道了rest风格的几个重要约束:
- 客户-服务器(Client-Server)
通信只能由客户端单方面发起,表现为请求-响应的形式。
- 无状态(Stateless)
通信的会话状态(Session State)应该全部由客户端负责维护。
- 缓存(Cache)
响应内容可以在通信链的某处被缓存,以改善网络效率。
- 统一接口(Uniform Interface)
通信链的组件之间通过统一的接口相互通信,以提高交互的可见性。
- 分层系统(Layered System)
通过限制组件的行为(即,每个组件只能“看到”与其交互的紧邻层),将架构分解为若干等级的层。
- 按需代码(Code-On-Demand,可选)
支持通过下载并执行一些代码(例如Java Applet、Flash或JavaScript),对客户端的功能进行扩展。
查阅了解了rest架构的过程:
用户代理处在三个并行交互(a、b和c)的中间。用户代理的客户端连接器缓存无法满足请求,因此它根据每个资源标识符的属性和客户端连接器的配置,将每个请求路由到资源的来源。请求(a)被发送到一个本地代理,代理随后访问一个通过DNS查找发现的缓存网关,该网关将这个请求转发到一个能够满足该请求的来源服务器,服务器的内部资源由一个封装过的对象请求代理(object request broker)架构来定义。请求(b)直接发送到一个来源服务器,它能够通过自己的缓存来满足这个请求。请求(c)被发送到一个代理,它能够直接访问WAIS(一种与Web架构分离的信息服务),并将WAIS的响应翻译为一种通用的连接器接口能够识别的格式。每一个组件只知道与它们自己的客户端或服务器连接器的交互;
REST的含义:
REST是所有Web应用都应该遵守的架构设计指导原则。当然,REST并不是法律,违反了REST的指导原则,仍然能够实现应用的功能。但是违反了REST的指导原则,会付出很多代价,特别是对于大流量的网站而言。
而RESTFUL指的是RESTful web Service:
. 用URL/URI来表示Object
.用标准的HTTP协议来完成逻辑操作,通常有以下几个对应 HTTP Get来获得一个订单的内容,HTTP Put来更新一个订单, HTTP Post来新增一个订单, HTTP Delete来删除一个订单。
无状态,一般指的是服务器端不保留任何操作和事务的状态,也就不存在类似回滚的操作
一般来说RESTful适合逻辑标记清晰的Web服务,交换数据一般用xml json yaml这种,另外像Java有更详细的Restful标准JAX-RS。
继续学习SpringMVC+myhabits的实现(没写完例子..就不细讲了)
二、遇到的问题:暂无
三、明天计划的事情:
关于REST的使用怎么实现的,怎么使用SVN等
四、收获
再补充REST的基础知识的时候,顺带过了一下web的发展史,感觉很有用处。(http://www.infoq.com/cn/articles/understanding-restful-style),如果有想看看的可以看一下。
评论