webservice 暴漏接口_web service(SOAP)与HTTP接口的区别

本文探讨了SOAP Web服务与HTTP接口的区别,包括它们的协议基础、效率、可替代性和应用场景。Web服务提供了清晰的接口和参数,处理复杂数据类型,但可能速度较慢。现代开放平台更倾向于使用HTTP接口。此外,介绍了API和Web服务在架构上的差异,以及SOAP、HTTP、XML在Web服务中的角色和作用。
摘要由CSDN通过智能技术生成

web service(SOAP)与HTTP接口的区别

什么是web service? soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式Content-type设置为: text/xml任何数据都可以xml化。

为什么要学习web service? 大多数对外接口会实现web service方法而不是http方法,如果你不会,那就没有办法对接。

web service相对http (post/get)有好处吗?

1.接口中实现的方法和要求参数一目了然

2.不用担心大小写问题

3.不用担心中文urlencode问题

4.代码中不用多次声明认证(账号,密码)参数

5.传递参数可以为数组,对象等...

web service相对http(post/get)快吗?

由于要进行xml解析,速度可能会有所降低。

web service 可以被http(post/get)替代吗?

完全可以,而且现在的开放平台都是用的HTTP(post/get)实现的搜索。

--------------------------------------------------------------------

API接口与webservice接口的区别?

webservice走HTTP协议和80端口

而你说的api,用的协议和端口,是根据开发人员定义的

这么说吧,api类似于cs架构,需要同时开发客户端API和服务器端程序

而WebService则类似于bs架构,只需要开发服务器端,不需要开发客户端,客户端只要遵循soap协议,就可以调用

--------------------------

WebService和HTTPService的区别

1.基于不同协议:HTTPService基于http协议,而WebService基于soap协议

2.处理数据效率不同:HTTPService效率较高,WebService能处理较复杂的数据类型

3.跨域的处理:HttpService方式不能处理跨域,如果调用一个其它应用的服务就要用webService

Web service一般就是用SOAP协议通过HTTP来调用它,其实他就是一个WSDL文档,客户都可以阅读WSDL文档来用这个Web service。客户根据WSDL描述文档,会生成一个SOAP请求消息。Web service都是放在Web服务器 (如IIS) 后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP搜索应答的方式把它送回到客户端。

个人以为就把webservice当成是Http这种请求和响应方式就可以处理大部分问题了。

SOAP 使用 HTTP 传送 XML,尽管HTTP 不是有效率的通讯协议,而且 XML 还需要额外的文件解析(parse),两者使得交易的速度大大低于其它方案。但是XML 是一个开放、健全、有语义的讯息机制,而 HTTP 是一个广泛又能避免许多关于防火墙的问题,从而使SOAP得到了广泛的应用。但是如果效率对你来说很重要,那么你应该多考虑其它的方式,而不要用 SOAP。

为了更好的理解SOAP,HTTP,XML如何工作的,不妨先考虑一下COM/DCOM的运行机制,DCOM处理网络协议的低层次的细节问题,如PROXY/STUB间的通讯,生命周期的管理,对象的标识。在客户端与服务器端进行交互的时候,DCOM采用NDR(Network Data Representation)作为数据表示,它是低层次的与平台无关的数据表现形式。

------------------------------

1.2 重要概念

1.2.1 何为Web Service ?

Web Service是构建互联网分布式系统的基本部件,它是一个应用程序,它向外界暴露出一个能够通过 Web进行调用的 API 。这就是说,别人能够用编程的方法通过 Web 来调用这个应用程序。

它通过标准通信协议,在互联网上以服务的方式发布有用的程序模块,目前大部分是用 SOAP作为通信协议。

它提供一份详细的接口说明书,来帮助用户构建应用程序,这个接口说明书叫 WSDL( Web服务描述语言,Web Service Description Language)。

通常已发布的 Web Service要注册到管理服务器,便于使用者查询和使用。这个是通过 UDDI( 统一描述、发现和集成, Universal Discovery Description and Integration)来完成的。 1.2.2 何为 SOAP 协议?

SOAP定义 SOAP消息的 XML格式( XML格式),如果你用一对 SOAP标记( SOAP Elements)把 XML文档括起来,那么这个就是一个 SOAP消息。

SOAP规范还定义了怎样用 XML来描述程序数据,怎样执行 RPC( 远程过程调用, Remote Procedure Call)。大多数 SOAP解决方案都支持 RPC-style应用程序,因为很多程序员已对 DCOM或 CORBA熟悉。 它还支持 Document-style应用程序( SOAP消息只包含 XML文本信息)。 Document-style应用程序有很好的灵活性,所以很多用 RPC很难构建的 Web Service用这种方式构建。

最后 SOAP规范还定义了 HTTP消息是怎样传输 SOAP消息的。这并不代表 SOAP只能用 HTTP来作为传输协议, MSMQ、 SMTP、 TCP/IP都可以做 SOAP的传输协议。

安全性对于应用程序来说是很重要的。那么 SOAP的安全性如何呢?对于把 HTTP作为传输协议的 SOAP来说是没有问题的,因为 HTTP协议已经有很好的安全构架。那么用其他传输协议会出现安全问题吗?这方面也已经有相关规范

WSDL是一种 XML文档,它定义 SOAP消息和这些消息是怎样交换的。 IDL( Interface Description Language,接口描述语言)是用于 COM和 CORBA的, WSDL是用于 SOAP的。 WSDL是一种 XML文档,所以可以阅读和编辑,但很多时候是用工具来创建、由程序阅读。

举个实例,当读者需要使用第三方的 Web Service构建应用程序。你可以向接口提供商索取使用 WSDL文档,在该文档中详细的说明了各个方法的方法名、参数和参数类型等信息。在 Java等编程语言的 IDE(例如 My Eclipse)中,可以根据 Web Servie生成对应的测试代码,稍微修改一下即可。

1.2.4 何为 UDDI ?

UDDI可以比喻成电话本,电话本里记录的是电话信息,而 UDDI记录的是 Web Service信息。可以不把 Web Service注册到 UDDI。但如果要让全球的人知道这个 Web Service,最好还是注册到 UDDI。

UDDI目录说明文件也是一个 XML文档,它包括三个部分。“白页( White Paper)”说明提供 Web Service的公司(人)信息,比如说名称、地址和联系方式等等。“黄页( Yellow Paper)”说明 UDDI目录的分类,比如说金融、服务和印刷等等。“绿页( green Paper)”说明接口( Web Service 提供的)的详细信息。 UDDI提供多种查询方式,来帮助你找到需要的 Web Service。如果你查询与财务有关的 Web Service,那么 UDDI会提供详细的信息。

1 .2.5 何为 XML ?

XML( Extensible Markup Language)即可扩展标记语言,它与 HTML一样,都是 SGML(Standard Generalized Markup Language,标准通用标记语言 )。在 Web Service接口中, WSDL和 UDDI目录文件都是一种XML文档, XML解决了数据表示的问题。

1.2.6 何为 XSD ?

XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整型数到底代表什么? 16位, 32位,还是 64位?

W3C制定的 XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。 Web Service就是用 XSD来作为其数据类型系统的。

1.3 开发 Web Service 接口和调用测试

在 Java IDE环境中开发 Web Service接口,以及如何调用第三方的 WSDL文档如何进行接口测试的参考文章详见:

1)《 使用XFire+spring 构建 Web Service (一) ——helloWorld 篇 》:

2)《 使用XFire+spring 构建 Web Service (二) 》:

3)《 根据wsdl 生成对应的 Java 代码进行接口测试(一) 》:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值