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

更多轻松搞懂WebService工作原理相关文章请关注PHP中文网!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php service原理,轻松搞懂WebService工作原理相关推荐

  1. 别不承认!搞懂那些数理原理,才发现它们和枯燥根本不沾边!

    ▲ 点击查看 数理化的学习对于很多孩子,包括家长都是一个大难题. 比如,我们要教孩子认识动物,一般是要给孩子看动物的图片或实体,孩子自然就对这个动物有个认知. 要教孩子数字,就会用一件玩具.两个苹果这 ...

  2. proe常用c语言语句,带你轻松搞懂Proe条件语句

    原标题:带你轻松搞懂Proe条件语句 本文通过几个简单的例子介绍Proe中的条件语句,希望对你能有所帮助.Proe中使用的IF条件语句和C语言中的IF语句原理是一样的,其结构稍有差别.首先我们了解一下 ...

  3. Android 动态分区详解(一) 5 张图让你搞懂动态分区原理

    文章目录 0. 导读 1. 动态分区详解的背景 1.1 背景 1.2 动态分区的本质 2. Linux device mapper 驱动 3. Android 动态分区布局 3.1 动态分区布局 3. ...

  4. 【机器学习sklearn】两个例子轻松搞懂核密度估计KernelDensity

    前言 作业中遇到了需要使用KernelDensity的情况,但是网上的资料参差不齐,找了不短的时间却失望而归,最后还是靠着自己的理解才弄懂sklearn这个函数的使用,特此纪念. [机器学习sklea ...

  5. 一个动画看懂网络原理之CSMA/CD的工作原理

    一个动画看懂网络原理之CSMA/CD的工作原理 CSMA/CD协议是以太网传输中的一个重要协议,由于线路中同一时间只能允许一台电脑发送信息,否则各计算机之间就会产生干扰,为了解决这个问题,采用了CSM ...

  6. 看懂相控阵雷达工作原理及类型简介

    我们知道,蜻蜓的每只眼睛由许许多多个小眼组成,每个小眼都能成完整的像,这样就使得蜻蜓所看到的范围要比人眼大得多.与此类似,相控阵雷达的天线阵面也由许多个辐射单元和接收单元(称为阵元)组成,单元数目和雷 ...

  7. 什么叫机械硬盘_机械硬盘的工作原理是什么?硬盘的工作原理简介

    机械硬盘的工作原理是什么?硬盘的工作原理简介 每个硬盘都有一块电路板,电路板主要负责与电脑进行通讯,并控制管理整个硬盘的工作,电路板可以说是硬盘的控制部门.由于个别硬盘电路设计不良,或芯片的质量不好, ...

  8. WebService 工作原理及实例教程

    一.WebService到底是什么? 先来看下标准的定义:Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统 ...

  9. 手把手带你搞懂AMS启动原理

    彻底搞懂AMS即ActivityManagerService,看这一篇就够了 前言 最近那么多教学视频(特别是搞车载的)都在讲AMS,可能这也跟要快速启动一个app(甚至是提高安卓系统启动速度有关), ...

最新文章

  1. 百度地图 osm地图 leaflet echarts webapck的组合使用时的踩坑记录
  2. OEMAddressTable介绍
  3. 启动php服务命令,启动|停止服务
  4. XMPP协议简单介绍
  5. git 安装目录与服务的暂停与启动
  6. leetcode 402. 移掉K位数字(贪心算法)
  7. ubuntu16.04安装red5
  8. iOS源码分析:Block的本质
  9. 智能家居APP原型设计(附下载链接)—基于物联网的终端设备设计研究—Axure9高保真原型设计
  10. 信息资源管理 笔记整理
  11. Beta周王者荣耀交流协会第六次会议
  12. 在C ++中将二进制转换为十进制
  13. python绘制幂函数曲线_基于matplotlib的yaxis力指数幂函数
  14. 论文笔记High-Resolution Image Synthesis with Latent Diffusion Models
  15. Linux下U盘变成只读
  16. 关系;关系模式;关系数据库
  17. Java线程池七个参数详解:核心线程数、最大线程数、空闲线程存活时间、时间单位、工作队列、线程工厂、拒绝策略
  18. 图片的降噪处理 java_OpenCV去除图像中的噪声
  19. echarts环形柱状图
  20. (4)FPGA开发工具介绍(第1天)

热门文章

  1. Spring Boot Admin 2.1.4,Spring Boot 应用的 Admin UI
  2. 观点:云大数据服务一定是终极形态吗?
  3. jQuery,Ashx发送站内信
  4. Android之解析XML
  5. SAP R3 Create Client: T-code:SCC4
  6. Android——电脑蓝屏重启后,studio无法认出Android环境 setup JDK(缓存!缓存!缓存)...
  7. HDU4008 Parent and son [树形DP]
  8. 一个严重损坏Excel深度修复案例
  9. 利用ASP.NET生成静态页面
  10. linux c 遍历目录 及 目录下文件