全文2006年9月发布于Eric Newcomer博客中文版上:http://blog.csdn.net/ericnewcomer/archive/2006/09/15/1223762.aspx 摘要 Pete对上一篇blog文章的评论已引发出更多的评论。好,让我来尝试回答Pete在他的评论中所提出的问题吧。希望这篇文章能引起更多愉快而有益的讨论。。。 在我看来,Pete的主要问题是:哪些Web服务用例(use cases)体现了与REST用例的区别?它们各自应当在什么情况下采用?以及增添的Web服务复杂性在什么情况下是合理的? 也许这样的回答太过于简单化了,但我认为这是最好的概括:如果你要用浏览器来显示XML数据,那么就采用REST;如果你要把XML数据传给一个程序来处理,那么就采用SOAP。 关于Amazon.com的Web服务的使用情况是:去年,80%的开发者采用了XML over HTTP版,而20%的开发者采用了SOAP版。这是合理的,因为大多数Amazon.com用户所关心的是“用浏览器访问虚拟店铺时的数据显示”。不过,Amazon.com同时支持这两种风格的“Web服务”,因为也有开发者关注于“把数据传给程序作处理”。(为了明确起见,我将采用Amazon的术语——REST和SOAP Web服务)。 看待REST的一种方式是:它基本上意味着把Web服务请求放在URL里。 下面这个URL是我在Google.com中搜索“Skateboots”时得到的: http://www.google.com/search?hl=en&ie=UTF-8&q=%22Skateboots%22&btnG=Google+Search 基本上,Google是把我输入Web表单的关键字作为参数放在URL里(URL里还有其他一些关于字符集和即将执行的操作(比如“搜索”)的信息),并根据此URL来执行