java webservice原理_轻松搞懂WebService工作原理

java webservice原理_轻松搞懂WebService工作原理用更简单的方式给大家谈谈 WebService 让你更快更容易理解 希望对初学者有所帮助 WebService 是基于网络的 分布式的模块化组件 我们直接来看 WebService 的一个简易工作流程 客户端 gt 阅读 WSDL 文档 了解 webservice 的请求 gt 调用 WebService 上面的流程是一个大致的描述 客户端阅读 WSDL 文档发送请求 然后调用 Web 服务器最后返回给客户端

用更简单的方式给大家谈谈WebService,让你更快更容易理解,希望对初学者有所帮助。

WebService是基于网络的、分布式的模块化组件。

我们直接来看WebService的一个简易工作流程:

客户端 ——>阅读WSDL文档(了解webservice的请求) ——> 调用WebService

上面的流程是一个大致的描述,客户端阅读WSDL文档发送请求,然后调用Web服务器最后返回给客户端,这和普通的http请求一样,请求->处理->响应,与普通的请求不一样的就是webservice请求中有一个WSDL文档和SOAP协议,以及.NET Framework自带的Web Service请求处理器 ISAPI Extension。

我们来看一个比较完整的流程:

客户端——> 阅读WSDL文档 (根据文档生成SOAP请求)——>发送到Web服务器——>交给WebService请求处理器 (ISAPI Extension)

——>处理SOAP请求——> 调用WebService——>生成SOAP应答——>Web服务器通过http的方式交给客户端

OK,到这里已经明白了的同学你可以走了,去逛逛别的文章,没懂的我们继续往下:

我们先来解释一下上面的流程中出现的几个名词:

1. SOAP: 是以XML形式提供简单、轻量、用于在分散或分布式环境中交换结构化和类型信息的机制。SOAP消息的基本结构通过HTTP协议传递XML数据。简单的说就是一个基于XML的协议。

2. WSDL : 是使用XML文档描述Web服务的标准,是Web服务的的接口定义语言,描述如何访问具体的接口,包含3个基本属性:

a. 如何访问服务:和服务交互的数据格式以及必要的协议。

b. 服务在哪里: 协议相关的地址,比如url信息等

c. 服务具有哪些功能: 服务提供的具体操作方法,=》就是你webservice中提供了哪些可调用的方法

原理详细描述:

无论使用什么工具、语言编写 WebService,都可以使用 SOAP 协议通过 HTTP 调用,其工作原理相同。创建 WebService 后,将其暴露给Web客户,任何语言、平台的客户都可以阅读其  WSDL 文档,以调用 WebService 。客户可以根据 WSDL 描述文档生成一个 SOAP 请求信息。 WebService 部署在Web服务器( 如IIS )上,客户生成的 SOAP 请求会被嵌入在一个 HTTP 请求中并发送到Web服务器,Web服务器(IIS)再将请求转发给 WebService 请求处理器。

对于.Net而言,WebService请求处理器则是一个 .NET Framework 自带的 ISAPI Extension。Web请求处理器用于解析收到的SOAP请求,调用 WebService,然后生成相应的SOAP应答。Web服务器得到SOAP应答后,在通过HTTP应答的方式将其返回给客户端。

WebService优势:

1.平台无关性 。  任何平台都可以使用WebService

2.编程语言无关系。 基于XML,XML本身与平台无关,使用XSD作为数据类型系统,不论用什么语言编写,所有数据类型都会被转换为XSD,只需要遵守WebService的统一标准即可。

3.部署、升级和维护Web服务简单、方便。

4.实现多数据、多服务的聚合。

5.成本低。

6.不受防火墙的影响。使用SOAP协议通信,封装了XML格式的数据,以ASCII文本的方式传输,而非二进制,调试方便,而且可以使数据容易的通过防火墙,不需要单独开通信端口。

总结:

WSDL、SOAP和UDDI(统一描述、发现和集成机制) 一起工作,支持WebService与Internet上的其他服务、应用程序和设备交互作用。UDDI提供了发布和定位Web服务功能(更多请自行了解),WSDL描述了Web服务,SOAP服务提供了传输消息。

申明:代码里(www.daimali.com)原创,转载请注明原文链接。

来源:代码里

链接:http://www.daimali.com/index.php/2016/05/03/448/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231046.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring Boot实现MyBatis分页查询[通俗易懂]

    Spring Boot实现MyBatis分页查询[通俗易懂]综合概述想必大家都有过这样的体验,在使用Mybatis时,最头痛的就是写分页了,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真的不想花双倍的时间写count和select,幸好我们有pagehelper分页插件,pagehelper是一个强大实用的MyBatis分页插件,可以帮助我们快速的实现MyBatis分页功能,而且pagehelper有个优点是,分页和Mapper.xml完全解耦,并以插件的形式实现,对Mybatis执行的.

    2022年5月5日
    69
  • Animator_制作动画的软件

    Animator_制作动画的软件1、ApplyRootMotionAnimatorMoveScript.cs:voidOnAnimatorMove(){//在脚本中使用此函数,并把它添加到相应对象上//这个方法就会覆盖Ap

    2022年8月2日
    10
  • 华为三层交换机不同vlan互访配置方法_不同交换机vlan间互通

    华为三层交换机不同vlan互访配置方法_不同交换机vlan间互通本次使用ensp模拟器模拟两台华为三层交换机如何配置不同网段不同vlan之间如何互通。网络拓补图如下图所示:IP地址如下:pc1:10.1.1.2/24pc2:10.1.2.2/24pc3:192.168.1.2/24pc4:192.168.2.2/24LSW1配置如下:<Huawei>system-view\\进入系统视图[Huawei]undoinfo-centerenable…

    2025年8月30日
    16
  • jdbc访问mysql(百度app下载)

     MySQL下载地址:http://dev.mysql.com/downloads/mysql/5.1.html#downloads 选择你对应的操作系统,然后选择这个系统下的第一个或者第二个,点击Pickamirror后即可下载 MySQL的JDBC驱动下载地址:http://dev.mysql.com/downloads/connector/在页面中选择你对应的开

    2022年4月10日
    36
  • 基于mysql的简单图书管理系统_图书管理系统

    基于mysql的简单图书管理系统_图书管理系统因为这两天要做数据库课设但是本人又很菜就做了一个简单的系统,简单的实现了增删改查,数据库用的是mysql,但是数据库的权限功能都没有实现,就是程序比较简陋,新手程序员可以参考一下~题目内容图书管理系统设计说明(1) 开发内容做出图书管理系统的需求分析,概念结构分析,逻辑结构分析,数据库的实施及维护。开发要求○1进行新书入库、现有图书信息修改以及删除;②能够实现对读者基本信息的查询和编辑管理;③能够实现预约功能;④能够实现借阅信息的查询功能;(2) 开发环境及工具系统前台开发软

    2022年10月15日
    3
  • 【Android开发】范例2-实现放大镜效果

    【Android开发】范例2-实现放大镜效果

    2021年9月6日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号