什么是休息,它的优势是什么[关闭]
Posted
技术标签:
【中文标题】什么是休息,它的优势是什么[关闭]【英文标题】:what is rest,and what is its advantage [closed] 【发布时间】:2011-09-03 21:25:41 【问题描述】:我在 Google 上搜索了 rest 的文档,但我不确定我是否理解它。
我在rest看到的是它的URL是干净的,例如:
http://host/webservice.asmx?name=xname&type=xtype
如果是 REST 风格,可能是:
http://host/webservice.asmx/xname/xtype
不是吗?
所以我只是发现网址更干净,但我找不到任何其他优点。
谁能告诉我更多?
我还有一些问题:
我发现一些基于 Ruby-on-Rails 构建的应用程序都使用干净的 URL,例如:
http://xxx/blog/list
http://xxx/blog/edit/1
http://xxx/blog/1
那么他们之间有什么关系吗?
网址重写
URL 重写是实现 REST 的方法之一吗?
我们有一些基于 ASP.NET 的 Web 服务,有没有办法将其更改为 REST 架构?
更新:
我已经阅读了这篇文章(rest-to-my-wife),似乎使用 http(post/get/put/delete) 提供的动词,我们可以使用刚刚 put 的相同 url 对资源进行不同的操作http正文中的真实数据; 例如,我想创建一个新订单:
POST http://www.store.com/order,
<purchase-order>
<item> ... </item>
</purchase-order>
但我还有一些问题:
1)我们如何在页面中设置http body?
另一个例子,我想删除一个订单:
删除http://www.store.com/order/1
但在页面中,url只是一个链接,
也许是这样的:
delete this order
它是静态的,我们如何告诉浏览器当它把这个url发送到服务器时,它应该使用“删除”的方式而不是“获取”?
2) 是否会导致服务器端的额外工作?
由于我们可能会使用不同的 http 方法(get/post...)向服务器发送相同的 url,因此服务器可能必须解析 http 的 header 和 body 以确保用户要为此执行什么操作url(也许使用'resource'而不是'url'更好,但我无法区分url和uri和resouce之间的区别)?
以相同的url为例:
http://www.store.com/order/1
如果服务器发现http方法是get,他可能知道“哦,这家伙只是想获取id为1的订单的信息”,如果方法是delete,他知道“哦,这家伙要删除id为1的订单”。
所以看起来这种方式会将额外的工作从客户端转移到服务器端。
我的意思是在客户端的url都是一样的,更容易,但是对于服务器端它需要更多的工作,这是真的吗?
【问题讨论】:
REST 与 URL 的干净程度无关。 *** 上有很多关于 REST 的一般问题。请在提出此类问题之前进行更多搜索。 【参考方案1】:HTTP 本身就是一个 REST 实现。 URL 的构建方式与它无关。 REST 是一种在每个请求中传递信息的方式,而不是永久打开的连接。
【讨论】:
其实这不太正确。 HTTP 可以以 RESTful 方式使用。它也可以以非 RESTful 方式使用。以上是关于什么是休息,它的优势是什么[关闭]的主要内容,如果未能解决你的问题,请参考以下文章