昨天我接受了一次采访,我遇到了一个有趣的问题,我被卡住了。 问题“你怎么说Restful web服务是一个Web服务?”。我试图解释所有可能的证明方法。但是所有的答案都被“Servlets可以做同样的事情所阻止。所以Servlet是宁静的Web服务吗?”
有人可以分享你的想法吗?
答案 0 :(得分:1)
要回答您的问题,我们先问一下什么是网络服务?
Web服务是两种电子设备之间的通信方式 万维网上的设备。 (维基百科)
现在,两个设备通过互联网进行通信的接受的行业规范正在使用 XML消息(使其成为inter-operable)
这给我们带来了不同类型的Web服务,主要分为SOAP和RESTful。
现在谈谈你的问题 Servlet是否是宁静的网络服务,让我们看看Servlet做什么
现在,如果以这种方式编写servlet,可以通过以下URL调用它
http://www.myrestwebservices/services/getstockquote/GOOG
这个servlet
services/getstockquote
将数据作为text / xml返回给客户端
这个servlet不满足RESTful场景的以下basic requirements吗?
从技术上讲,是的,Servlet是一种RESTful Web服务,但这可能不足以满足Web服务本身的通用业务需求。因此,对于完整的RESTful Web服务,我们需要一个专门用于解决这些基本业务需求的servlet(然而)。
答案 1 :(得分:0)
您可以使用Servlet设计RESTful Web服务。
Servlet可帮助您为HTTP请求创建HTTP响应。 RESTful webservices位于HTTP协议之上,因此您可以使用Servlet创建REST服务。
答案 2 :(得分:0)
任何基于HTTP的代码(使用任何语言等)都可以是一个宁静的Web服务,只要它符合REST的要求......
请参阅:http://en.wikipedia.org/wiki/Representational_state_transfer
答案 3 :(得分:0)
有关上述
的详细信息,请参阅此post答案 4 :(得分:0)
您对这些问题的处理方法应该是自下而上的。从服务的定义开始。然后定义Web服务,然后您可以轻松区分什么是Web服务和什么不是。一般来说,对于这样的讨论,我会像这样攻击它:
HTTP
以上)使用的任何服务都是Web服务。 VERB
与NOUN
分离以及 资源 的概念方面增加了更多约束。 Java世界中的所有Web Restful服务都是通过Servlet编写的,Servlet是处理HTTP
的低端实现。如果传输不是HTTP
,则它是服务但不是Web服务:)
答案 5 :(得分:0)
我认为答案相当明显,所以他们给你的问题有点奇怪。基于SOAP和REST的服务都使用HTTP作为传输机制,因此它们实际上是Web服务。
它们的不同之处在于,基于SOAP的服务更严格地由规范定义,其中REST-full服务更像是一种在实现中受到较少约束的架构风格。