什么是休息,它的优点是什么

时间:2011-05-28 09:59:31

标签: web-services rest restful-authentication

我已经开始搜索有关休息的文档,但我并不确定我是否理解它。

我可以在休息时看到它的网址是干净的,例如:

http://host/webservice.asmx?name=xname&type=xtype

如果是REST风格,可能是:

http://host/webservice.asmx/xname/xtype

不是吗?

所以我发现网址更干净,但我找不到任何其他优势。

有人可以告诉我更多吗?

我还有一些问题:

  1. 我发现在Ruby-on-Rails上构建的一些应用程序都使用干净的URL,例如:

    http://xxx/blog/list

    http://xxx/blog/edit/1

    http://xxx/blog/1

    他们之间有什么关系吗?

  2. 网址重写

    URL是否重写了实现REST的方法之一?

  3. 我们有一些基于ASP.NET的Web服务,有没有办法将其更改为REST架构?

  4. <小时/> <小时/> 的更新:

    我已经读过这篇文章(休息给我的妻子),似乎使用http提供的动词(post / get / put / delete)我们可以使用相同的url对资源进行不同的操作http体中的相关数据; 例如,我想创建一个新订单:

    POST http://www.store.com/order,
    <purchase-order>
      <item> ... </item>
    </purchase-order>
    

    但我还有一些问题:

    1)我们如何在页面中设置http正文?

    另一个例子,我想删除一个订单:

    删除http://www.store.com/order/1

    但是在页面中,网址只是一个链接,

    Mabye就像这样:

    delete this order

    它是静态的,我们如何告诉浏览器,当它将此url发送到服务器时,它应该使用“删除”方式而不是“获取”?

    2)是否会导致服务器端的额外工作?

    由于我们可能会向服务器发送带有不同http方法(get / post ...)的相同url,因此服务器可能必须解析http标头和正文以确保用户想要为此执行什么操作url(也许使用'资源'而不是'url'更好,但我不能分辨url和uri之间的区别和资源)?

    以相同的网址为例:

    http://www.store.com/order/1
    

    如果服务器发现http方法是“get”,他可能知道“哦,这家伙只想获取id为1的订单的信息”,如果方法是“删除”,他知道“哦,这家伙想要删除id为1的订单。”

    所以看起来这种方式会将额外的工作从客户端转移到服务器端。

    我的意思是在客户端中,url是一样的,它更容易,但对于服务器端来说它需要更多的工作,这是真的吗?

1 个答案:

答案 0 :(得分:1)

HTTP本身就是一个REST实现。构建URL的方式与它无关。 REST是一种在每个请求中传递信息的方式,而不是永久打开的连接。