文章学习来源:http://www.ruanyifeng.com/blog/2011/09/restful.html
网站即软件
- 客户端/服务器模式
- 建立在分布式体系上,通过互联网通信
- 特点:高延时,高并发等
使用流行架构:RESTful。
一、起源:2000年博士论文
二、名称:REST=Representational State Transfer[表现层状态转化]
三、资源
- 表现层=资源的表现层
- 资源=网络实体:1段文本、1张图片等
- URL(统一资源定位符)=指向资源,一对一代表实体位置
四、表现层
表现层=资源呈现的形式:文本-txt格式/json格式等,图片jpg格式/png格式等呈现
描述:HTTP请求头信息在Accept和Content-Type中指定
五、状态转化
访问:客户端&服务器互动过程中==>数据和状态的变化
- 客户端通过手段让服务器发生状态变化
手段:HTTP协议
操作方式:
- GET:获取资源
- POST:新建资源/更新资源
- PUT:更新资源
- DELETE:删除资源
六、综述:
- 每个url代表一种资源
- 客户端和服务器之间传递该资源的某表现层(txt或png)
- 客户端通过HTTP四个动词操作服务器端资源==>实现表现层状态转化
七、设计误区:
1、URI包含动词:
- 资源表示实体应为名词
- 动词应放在HTTP协议中
- ex1:/posts/show/1 ==> /posts/1 || 用GET方法表示show
-
/*实例:账户1向账户2汇款500元*/// 错误POST /accounts/1/transfer/500/to/2//正确:将transfer改为名词transactionPOST /transaction HTTP/1.1Host: 127.0.0.1from=1&to=2&amount=500.00
2、URI中有版本号
- 因不同版本为同一资源的不同形式,所以采用同一URI
- 版本号可通过HTTP请求头的Accept字段中区分
-
// 错误http://www.ex.com/app/1.0/foohttp://www.ex.com/app/1.1/foo//正确(包含网址、格式形式、版本号)Accept: vnd.ex-com.foo+json;version=1.0Accept: vnd.ex-com.foo+json;version=1.1