REST 是 representation state transfer的缩写,表述性状态转移。是一种架构,结合一系列规范,而形成了一种新的基于web的架构风格。
B/S架构:
client-server
无状态性:从客户端到服务器的每个request都必须包含理解该request所必须的所有信息。
缓存
REST在原有框架上增加三个新规范:
统一接口:网络上的所有事物都被抽象为资源,保证系统提供的服务都是解耦的。
分层系统
按需代码
准则:
1. 网络上的所有事物都被抽象为资源(resource); 2. 每个资源对应一个唯一的资源标识符(resource identifier); 3.通过通用的连接器接口(generic connector interface)对资源进行操作; 4. 对资源的各种操作不会改变资源标识符; 5. 所有的操作都是无状态的(stateless)。
URI的设计被称为RESTful URI
http://yangjizhong.iteye.com/blog/600540
http://developer.51cto.com/art/200909/153054.htm
http://www.uml.org.cn/j2ee/200905074.asp
rest更重要的原则是分层系统,这表示组件无法了解它与之交户的中间层以外的组件。通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进了底层的独立性。当rest结构的约束条件作为一个整体应用时,将生成一个可以扩展到大量客户端的应用程序。它还降低了客户端和服务器之间的交互延迟。统一界面简化了整个系统的结构,改进了子系统之间交互的可见性。
由于轻量级以及通过Http直接传输数据的特性,web服务的restful方法已经成为最常见的替代方法。可以使用各种语言实现客户端。restful web 服务通常可以通过自动客户端或代表用户的应用程序访问。但是,这种服务的简便性让用户能够与之直接交互,使用它们的浏览器构建一个GET url并读取返回的内容。
GET: relies on the modifiable "variants"list and the "represent" method 查看
POST: relies on the "modifiable" property and the "acceptRepresentation" method 创建
PUT:relies on the "modifiable" property and the "storeRepresentation" method 更新或创建
DELETE:relies on the "modifiable" property and the "removeRepresentation" method 删除
http://www.ibm.com/developerworks/cn/opensource/os-httpclient/
http://harryjoy.com/2012/09/08/simple-rest-client-in-java/
使用httpclient基本功能的使用:
GET方法
1.创建httpclient实例
2.创建某种连接方法的实例,在这里是GetMethod,在getmethod的构造函数中传入待连接的地址
3.调用第一步中创建好的实例的execute方法来执行第二步中创建好的method 实例
4.读response
5.释放连接。无论执行方法是否成功,都必须释放