【转载】轻松搞懂WebService工作原理

【转载】轻松搞懂WebService工作原理

用更简单的方式给大家谈谈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服务提供了传输消息。

 

【转自】http://www.cnblogs.com/codelir/p/5476517.html

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

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

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


相关推荐

  • 被问到项目亮点、难点、遇到的问题、解决思路

    被问到项目亮点、难点、遇到的问题、解决思路面试中被问到你的项目亮点 难点 遇到的问题 解决思路是不是很蒙 现在我拆分一下问题什么是项目亮点 你负责的业务是什么 学会发现问题 你真的想过业务是什么吗 有为业务想过什么吗 有了你 业务有什么不同吗 能不能 5 分钟说明白 你负责的业务是什么 可有想过有没有说到位 甚至答非所问这里谈谈我个人对业务的理解 或许没有普遍意义 所以仅供参考

    2025年8月3日
    2
  • pycharm激活码 2022.01.13_最新在线免费激活

    (pycharm激活码 2022.01.13)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月31日
    151
  • 西班牙语语法【2 : 动词】

    西班牙语语法【2 : 动词】时态时态描述陈述式_现在时陈述式_简单过去时陈述式_过去未完成时陈述式_将来未完成时陈述式_过去完成时陈述式_现在完成时陈述式_将来完成时虚拟式_现在时虚拟式_过去时条件式_过去将来时过去将来完成时…

    2022年6月10日
    31
  • rsyslog详解

    rsyslog详解一、日志介绍日志概念日志是系统用来记录系统及应用程序运行时的一些相关信息的文本文件日志作用日志是为了保存相关程序的运行状态、错误信息等,为了对系统进行分析、保存历史记录以及在出现错误时发现、分析错误使用linux系统日志类型内核信息服务信息应用程序信息二、rsyslog1、rsyslog介绍rsyslog是linux系统中用来实现日志功能的服务。默认已经安装,并且自动启用。作用:主要用来采集日志,不生产日志其特性包括: 支持输出日志到各种数据库,如MySQ

    2022年9月24日
    3
  • markdown语法大全(日语一共多少语法)

    最全的Markdown语法Markdown是Github最常见的文档说明。Markdown的语法简洁明了、学习容易。按照官方MarkdownCheatSheet逐个操作一遍自然就会了。[TOC]这个语法在markdown工具里能够识别,但是在这里不能识别。目录代码:文章目录一级标题##二级标题#####多级标题[MENU]效果显示如上多级标题代码:一级标题##二级标题#####多级标题效果一级标题二级标题多级标题引用与注释代码:一级引用>>二级引

    2022年4月15日
    72
  • C语言strstr函数实现

    C语言strstr函数实现自己实现C语言中的strstr函数,用的是朴素的模式匹配算法,还有可以优化的地方,下次想好了再写。/*strstr实现*/char*mystrstr(constchar*dest,constchar*src){ char*tdest=dest; char*tsrc=src; while(*tdest) { char*flag=tdest

    2022年6月25日
    30

发表回复

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

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