REST应该放弃使用http头GET、POST、PUT和DELETE来表达操作
2009-06-06 11:58
549 查看
为了统一和简单,REST应该放弃使用http头GET、POST、PUT和DELETE来表达操作
完全分离是不可能的,不如一开始就统一存放各类信息,以便后台统一获取信息(操作、对象、请求者、。。。。。)
所有类别的信息均放在query或post的data里,这样REST的软件依赖性更小。
因为
1、有些http客户端只支持get(query)或post;
2、以后的应用可能需要更多的信息类别(不是具体信息项),最终还是要混合放在get的query或post的data里的。
所以,不如一开始就建议 操作者身份(id或session)、操作动作、操作对象(以及以后可能出现的新的信息类别) 均放在post的data里。
不支持post的客户端,可以放在get的query里。
后端获取这些信息时,顺序从 query/data/cookies 里按名(name或tag)取信息(value),取到即返回。
这样,不支持cookie、data的客户端,也一样可以工作
这才是彻底符合简单、通用、统一的原则——这也是REST本来主张的,也是它的出发点
(
——其实没必要说这么多,还是论坛讨论的不方便
——例如我说到“action=xxx该放在query或data里”,对方就以为我对REST规定的操作放在http头里的http头理解不对。。。。。。。。。其实我一开始就知道REST规定的操作放在http头,所以才反感特意把操作放在一个特别的地方(只不过http协议正好有这个所谓的动作而已——随着后台应用的普及,基本都是只需要get/post的了,好像还有一些特别的动作,如dev/opt之类的,更是应该丢弃)
)
完全分离是不可能的,不如一开始就统一存放各类信息,以便后台统一获取信息(操作、对象、请求者、。。。。。)
所有类别的信息均放在query或post的data里,这样REST的软件依赖性更小。
因为
1、有些http客户端只支持get(query)或post;
2、以后的应用可能需要更多的信息类别(不是具体信息项),最终还是要混合放在get的query或post的data里的。
所以,不如一开始就建议 操作者身份(id或session)、操作动作、操作对象(以及以后可能出现的新的信息类别) 均放在post的data里。
不支持post的客户端,可以放在get的query里。
后端获取这些信息时,顺序从 query/data/cookies 里按名(name或tag)取信息(value),取到即返回。
这样,不支持cookie、data的客户端,也一样可以工作
这才是彻底符合简单、通用、统一的原则——这也是REST本来主张的,也是它的出发点
(
——其实没必要说这么多,还是论坛讨论的不方便
——例如我说到“action=xxx该放在query或data里”,对方就以为我对REST规定的操作放在http头里的http头理解不对。。。。。。。。。其实我一开始就知道REST规定的操作放在http头,所以才反感特意把操作放在一个特别的地方(只不过http协议正好有这个所谓的动作而已——随着后台应用的普及,基本都是只需要get/post的了,好像还有一些特别的动作,如dev/opt之类的,更是应该丢弃)
)
相关文章推荐
- REST = HTTP动词(GET POST PUT DELETE)操作 + 服务器暴露资源URI,最后返回状态码(充分利用HTTP自身的特征,而不仅仅是把HTTP当作传输协议。Rest协议是面向资源的,SOAP是面向服务的),表现形式可以是JSON XML BIN,举例很清楚
- vue $http get,post,put,delete方法使用
- 从REST引申到对http协议中 get、post、put、delete理解
- python_HTTP(实现GET、PUT、POST、DELETE操作)
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【五】——在Web Api中实现Http方法(Put,Post,Delete)
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【五】——在Web Api中实现Http方法(Put,Post,Delete)
- URL描述资源,HTTP方法(get,put,delete,post)描述操作
- rest入门实践之二:get/post/put/delete
- Angular HttpClient http请求示例(GET、PUT、 PATCH、POST、DELETE)
- HTTP协议-get,put,post,delete含义与区别
- REST四种请求(get,delete,put,post) 收集整理 之一
- HttpPost,HttpGet,HttpPut,HttpDelete请求方式
- 【Angular】angular-HttpClient 与服务器通讯 Get Post Put Delete Http 拦截器 请求讲解
- http协议中:GET/POST/PUT/DELETE/INPUT/TRACE/OPTIONS/HEAD方法
- 【Angular】angular-HttpClient 与服务器通讯 Get Post Put Delete Http 拦截器 请求讲解
- python urllib2对http的get,put,post,delete
- HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等
- HTTP协议及POST与GET操作差异,C#中如何使用POST、GET等
- HTTP协议之GET PUT POST DELETE方法
- http的4种提交方式简要介绍(get,post,put,delete)