一、REST和SOAP
SOAP:简单对象访问协议
REST:表述性状态传递
区别:
- soap以操作为中心,接受xml作为输入,消息通过http传输协议发出,通过RPC调用,再返回一个xml文档。
- soap采用xml文档的消息体,消息的有效负载相对rest的json(当然rest也能用xml等)更少,这点soap相对更重量级。
- rest采用http方法(get,put,post,delete)对URI进行操作,开发简单。
- rest设计原则是无状态的,容易支持负载均衡。
使用场景:
REST
- 有限的带宽 json更轻量
- 无状态性
- 需要缓存 REST 的应用可以充分地挖掘 HTTP 协议对缓存支持的能力。当客户端第一次发送 HTTP GET 请求给服务器获得内容后,该内容可能被缓存服务器 (Cache Server) 缓存。当下一次客户端请求同样的资源时,缓存可以直接给出响应,而不需要请求远程的服务器获得。对于soap而言,SOAP 消息所使用的 URI 总是指向 SOAP 的服务器,采用缓存,缓存服务器如果不解码 SOAP 消息体,没法知道该 HTTP 请求是否是想从服务器获得数据。
SOAP
- 安全性要求
- 有状态的操作
二、常见框架
Jersey ,CXF(Apache提供),JBoss的RestEasy, Dubbo。
参考:https://blog.csdn.net/shikaiwencn/article/details/51730727