Restfu架构设计l概述

一、restful简介

     Rest是Fielding 博士在2000年提出的一个互联网软件的架构原则,起名为Rest即 Representational State Transfer。

    关于Restful风格的架构设计具有以下一些专有名词和特点:

    1、表现层资源

    所谓资源,表示网络上的一个具体信息或实体,在Restful风格中,URI、网页page等都属于资源范畴。例如我们访问:http:localhost:8091/web-student/course/323;这个URI所表示的含义就是类型为course,id为323的课程资源。

    2、状态转化

    资源是一种信息实体,它可以有多种表现形式,访问一个网站,就发生了一次客户端和服务器的互动,这个互动过程就涉及到了数据和状态的变化。HTTP协议是一个无状态协议,所以状态都保存在服务器端,所以客户端想要访问操作服务器,就设计到client-server间的状态转化(state transfer),而这种转化是建立在表现层之上的,所以就是表现层(client-server)状态转化。

    3、4个HTTP基本操作

    客户端可以通过http协议提供的基本操作:get-获取资源、post-新建资源、put-更新资源、delete-删除资源来操作服务端资源。下面是关于URI和HTTP四个方法的关系。

Relationship between URI and HTTP Methods

The following table shows how HTTP methods are typically used in a RESTful API:

HTTP methods

Uniform Resource Identifier (URI)

GET

PUT

POST

DELETE

Collection, such ashttp://api.example.com/resources/

List the URIs and perhaps other details of the collection's members.

Replace the entire collection with another collection.

Create a new entry in the collection. The new entry's URI is assigned automatically and is usually returned by the operation.

Delete the entire collection.

Element, such ashttp://api.example.com/resources/item17

Retrieve a representation of the addressed member of the collection, expressed in an appropriate Internet media type.

Replace the addressed member of the collection, or if it does not exist, createit.

Not generally used. Treat the addressed member as a collection in its own right andcreate a new entry in it.

Delete the addressed member of the collection.

总而言之,Restful设计风格把每一个URI视作一种资源,客户端通过http的基本操作实现对服务端资源的使用。

 

二、Rest式web服务及发展历史:

    使用restful风格进行web service 服务调用的方式叫做rest式web服务,在rest之前,J2EE 5中便提供了基于xml的web service API支持(JAX-WS)和JAX-RPC远程调用API,J2EE6中提供了一套规范的基于rest风格的web service API(JAX-RS),从这点来看rest相较于前两者应该有它的独特之处,才使得java平台新提供一套以rest为基础的web Service 调用接口。

***********************************************由《java restful web service实战》总结而来***************************************

    1、从方法信息角度看,相对于RPC调用,Rest采用标准HTTP方法(get、put、post、delete),而RPC请求均使用post方法,该方法信息包含在SOAP协议或者HTTP协议包中,不具有通用性。

    2、从作用域角度看,rest采用uri定义作用域,而RPC这一信息同样包含于协议包中,不能直观呈现。

    3、RPC风格的两大代表:j2ee5中的JAX-RPC和Big Web Service

        JAX-RPC使用xml格式封装方法调用,以HTTP协议进行传输,看似和Rest使用xml进行资源描述相似,但内容上大相径庭。Rest的xml中只包含资源描述,而RPC还包括数据请求格式和额外的方法参数等信息。

        Big Web Service 是使用基于SOAP+WSDL+UDDI+WS这一标准技术栈实现RPC风格的服务调用统称。相较于Rest式的web服务,具有更强大、复杂的设计。而rest则更简单轻便,无需引入SOAP消息传输、注册服务、客户端调用等等这些传统web 服务调用的操作。这就体现了rest的短小精悍特点。所以会比其他方式的服务调用快速。但在安全方面可能还有待提高。

三、总结

          基于原生,所以快速、简洁;中西结合,疗效更佳

 

你可能感兴趣的:(Web,rpc,service,Restful)