文章学习来源:http://www.ruanyifeng.com/blog/2011/09/restful.html 阮一峰
网站即软件
- 客户端/服务器模式
- 建立在分布式体系上,通过互联网通信
- 特点:高延时,高并发等
使用流行架构:RESTful。
一、起源:Fielding2000年博士论文
二、名称: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改为名词transaction POST /transaction HTTP/1.1 Host: 127.0.0.1 from=1&to=2&amount=500.00
2、URI中有版本号
- 因不同版本为同一资源的不同形式,所以采用同一URI
- 版本号可通过HTTP请求头的Accept字段中区分
-
// 错误 http://www.ex.com/app/1.0/foo http://www.ex.com/app/1.1/foo //正确(包含网址、格式形式、版本号) Accept: vnd.ex-com.foo+json;version=1.0 Accept: vnd.ex-com.foo+json;version=1.1