为什么使用SOAP与前端(即Web浏览器)通信不是一个好主意?

24
为什么不建议使用SOAP与前端通信?例如,一个使用JavaScript的Web浏览器。
4个回答

42
  • 因为它太臃肿了
  • 因为JSON在JavaScript中可以直接理解
  • 因为XML不容易在JavaScript中进行快速操作。

1
三点都同意。XML臃肿,使用js处理起来很有挑战性,而JSON则简洁且本地化。 - Prestaul
嗯...在搜索如何允许用户通过浏览器输入时,我发现了这个问题,而唯一的访问方式是通过SOAP接口。我在这方面很陌生 - 有什么建议吗? - cvsdave
你可以尝试使用任何 JS 实现的 SOAP 协议,例如 http://www.codeproject.com/KB/ajax/JavaScriptSOAPClient.aspx,并在 HTML 中构建一个 UI 来获取用户输入。祝好运。 - gizmo

18

因为SOAP在追求协议独立性的过程中重新发明了许多HTTP的轮子。但是,如果你知道你将在HTTP上提供响应(因为你的客户端是Web浏览器),那还有什么意义呢?

更新:我支持gizmo的(暗示)建议,使用JSON。


5
如果网页浏览器是您唯一的客户端,那么我认为使用SOAP会过于繁琐。
但是,如果您要在不同平台上运行多种类型的前端客户端,则使用SOAP可能是合适的。SOAP的好处在于有很多工具可以根据WSDL文件为您生成代码,以处理基于SOAP的发送、接收和解析。
例如,如果您想开发一个C ++前端客户端,那么您只需要WSDL文件,微软的工具就会为您生成所有C ++代码,以生成基于数据结构的SOAP请求,发送请求,接收响应并将响应解析为返回数据结构。
这种工具在客户端和服务器端都有提供。

我认为,如果你需要在不同平台之间交换数据,SOAP是一个合理的方法。然而,如果你有通过SOAP Web服务可用的数据,并且想要使用js访问该数据,则值得花费一些精力将数据以JSON格式发送到页面上。不要在客户端解析它。 - Prestaul

3

这是可以实现的。只要记住,SOAP 不是交换信息最快的方式,因为存在很大的开销(需要来回发送大量的 XML 数据) - 这可能就是为什么你不经常看到它被使用的原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接