论Http、Socket、WebSocket、WebService(SOAP)之间的区别

【LVGL】从NXP GUI GUIDER到雅特力AT32F403A:手把手实战工程移植与坐标校准 本文详细介绍了如何将NXP GUI GUIDER设计的LVGL界面移植到雅特力AT32F403A芯片的实战过程。从工程文件结构调整、关键代码修改到触控坐标校准,提供了完整的解决方案和性能优化技巧,帮助开发者快速实现高效移植。 阅读详情

 点击上方“小码哥Damon”,选择“设为星标”

回复“yeah”,获取礼包资料

本场 Chat 旨在一分钟教你理解各种协议的区别。

在本场 Chat 中,会讲到如下内容:

- 什么是 Http 协议

- 什么是 socket,Websocket 与其有啥不同

- SOAP 是什么协议

何为 HTTP

HTTP 是基于请求响应式的,即通信只能由客户端发起,服务端做出响应,无状态,无连接。

无状态:每次连接只处理一个请求,请求结束后断开连接。

无连接:对于事务处理没有记忆能力,服务器不知道客户端是什么状态。

以往实现即时通讯的手段:

轮询:客户端定时向服务器发送 Ajax 请求,服务器接到请求后马上返回响应信息并关闭连接。

长轮询:客户端向服务器发送 Ajax 请求,服务器接到请求后 hold 住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。

长连接:在页面里嵌入一个隐蔵 iframe,将这个隐蔵 iframe 的 src 属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。

Socket 是什么?

Socket 是操作系统提供的对于传输层(TCP / UDP)抽象的接口,是一个编程概念,而 Websocket 与 HTTP 一样是一个成文的互联网协议。

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

当两台主机通信时,必须通过 Socket 连接,Socket 则利用 TCP/IP 协议建立TCP连接。TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。

WebSocket 又是啥?

WebSocket 与Socket 没有直接联系。WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。

由起:

HTTP 协议有一个缺陷:通信只能由客户端发起。

这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。我们只能使用"轮询":每隔一段时候,就发出一个询问,了解服务器有没有新的信息。最典型的场景就是聊天室。

轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP 连接始终打开)。因此,工程师们一直在思考,有没有更好的方法。WebSocket 就是这样发明的。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。

其他特点包括:

(1)建立在 TCP 协议之上,服务器端的实现比较容易。

(2)与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。

(3)数据格式比较轻量,性能开销小,通信高效。

(4)可以发送文本,也可以发送二进制数据。

(5)没有同源限制,客户端可以与任意服务器通信。

(6)协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

Websocket使用和 HTTP 相同的 TCP 端口,可以绕过大多数防火墙的限制。默认情况下,Websocket协议使用80端口;运行在TLS之上时,默认使用443端口。

WebSocket 与 HTTP 的关系

相同点:

1. 都是一样基于 TCP 的,都是可靠性传输协议。

2. 都是应用层协议。

不同点:

1. WebSocket 是双向通信协议,模拟 Socket 协议,可以双向发送或接受信息。HTTP 是单向的。

2. WebSocket 是需要握手进行建立连接的。

联系:

1. WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。

SOAP 是干嘛的?

讲述 SOAP,先来讲解 WebService:

WebService是一种跨编程语言和跨操作系统平台的远程调用技术。

跨编程语言和跨操作平台:就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!

跨操作系统平台:则是指服务端程序和客户端程序可以在不同的操作系统上运行。

远程调用:就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一个对象的方法,譬如,银联提供给商场的pos刷卡系统,商场的POS机转账调用的转账方法的代码其实是跑在银行服务器上。再比如,amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以 webservice 服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率,往大的概念上吹,就是所谓的SOA应用。

从表面上看,WebService 就是一个应用程序向外界暴露出一个能通过Web进行调用的API,把调用这个 WebService 的应用程序叫做客户端,而把提供这个 WebService的应用程序叫做服务端。从深层次看,WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。

WebService 平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,WebService平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。Web service平台必须提供一种标准来描述 Web service,让客户可以得到足够的信息来调用这个Web service。最后,我们还必须有一种方法来对这个Web service进行远程调用,这种方法实际是一种远程过程调用协议(RPC)。为了达到互操作性,这种RPC协议还必须与平台和编程语言无关。

WebService 平台技术:

XML+XSD、SOAP、WSDL就是构成 WebService 平台的三大技术。

XML:

WebService 采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的返回结果是什么)。XML是WebService平台中表示数据的格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的:软件厂商是不会选择一个由竞争对手所发明的技术的。XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,64位?这些细节对实现互操作性很重要。

XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。WebService 平台就是用 XSD 来作为其数据类型系统的。当你用某种语言(如VB.NET或C#)来构造一个Web service时,为了符合WebService标准,所有你使用的数据类型都必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。

SOAP (Simple Object Access Protocol 简单对象访问协议):

WebService 通过 HTTP 协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用 Web Service。

SOAP 协议 = HTTP 协议 + XML 数据格式

SOAP 协议定义了 SOAP 消息的格式,SOAP 协议是基于 HTTP 协议的,SOAP 也是基于XML和XSD的,XML是SOAP的数据编码方式。SOAP 请求是 HTTP POST 的一个专用版本,遵循一种特殊的xml消息格式Content-type设置为: text/xml任何数据都可以xml化。打个比喻:HTTP 就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。

WSDL:

好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。WebService也一样,WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,WebService 服务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。

WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以 WSDL 既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。

WSDL 文件保存在 Web 服务器上,通过一个 url 地址就可以访问到它。客户端要调用一个 WebService 服务之前,要知道该服务的 WSDL 文件的地址。WebService 服务提供商可以通过两种方式来暴露它的 WSDL 文件地址:1. 注册到 UDDI 服务器,以便被人查找。2. 直接告诉给客户端调用者。

 

个人网站:http://www.damon8.cn

 

热文推荐

微服务架构设计 Spring Boot1.x Dalston版

浅谈JVM及其原理、什么是GC

Go语言入门基础之库源码文件

Go语言入门基础之命令源码文件

Springcloud Oauth2 HA篇

Spring Cloud Kubernetes之实战一配置管理

Spring Cloud Kubernetes之实战二服务注册与发现

Spring Cloud Kubernetes之实战三网关Gateway

Ubuntu下K8S部署指南,单机、集群,带你入坑

求关注

关注公众号,回复入群,获取更多惊喜!公众号(程序猿Damon)里回复 ES、Flink、Java、Kafka、MQ、ML、监控、大数据、k8s 等关键字可以查看更多关键字对应的文章。

你点的每个赞,我都认真当成了喜欢

常见API架构介绍 两个服务间进行接口调用,通过调用API的形式进行交互,这是常见CS架构实现的模式,客户端通过调用API即可使用服务端提供的服务。相较于SPI这种模式,就是服务端只规定服务接口,但具体实现交由第三方或者自身来实现,API这种模式是具体的实现和API接口都是服务端来实现的。API 使用协议或规范来定义那些通过网络传输的消息的语义和信息。这些规范构成了 API 的体系结构。选择RPC场景:服务内部通信,需要高性能;选择RESTful场景:提供公共web api服务。 阅读详情

相关推荐

HTTP、Socket、WebSocket与WebService协议对比与应用指南

网络通信协议是分布式系统开发的基础技术栈,从传输层的Socket到应用层的HTTP/WebSocket,再到服务架构层的WebService,构成了完整的通信技术体系。Socket作为操作系统提供的原始网络接口,支持TCP/UDP协议,适合需要精细控制传输过程的场景;HTTP作为无状态请求-响应协议,经过HTTP/2多路复用等优化,仍是RESTful API的首选;WebSocket通过HTTP升级实现全双工通信,解决了服务端主动推送的需求;而基于XML的WebService(SOAP)在企业系统集成中仍具

weixin_42525289的博客 236

http 接口 和webService 接口

使用 SOAP 协议:如果接口采用了 SOAP 协议,可以使用相应的 SOAP 客户端库来构建 SOAP 请求,并解析接口返回的 SOAP 响应。使用 HTTP 请求库:可以使用编程语言中的 HTTP 请求库(如Python中的 requests 库)来发送 HTTP 请求,并获取接口返回的数据。无论使用何种方式,都需要了解接口的具体要求,包括接口地址、请求参数、请求方式、认证授权等信息,并根据接口文档进行调用和处理返回结果。无论使用原生的类库还是第三方库,都需要根据具体的需求和接口要求来选择合适的方式。

weixin_41964236的博客 9364

HTTP、Socket与WebSocket协议对比与实战应用

网络通信协议是分布式系统的基础组件,理解不同协议的特性和适用场景对开发者至关重要。HTTP作为无状态请求响应协议,适用于常规Web交互;Socket提供底层双向通信能力,适合自定义协议场景;WebSocket则在HTTP基础上实现全双工通信,大幅降低实时系统的延迟。在微服务架构和实时通信场景中,合理选择通信协议能显著提升系统性能。通过连接复用、心跳机制等优化手段,可以充分发挥HTTP/2、WebSocket等现代协议的优势,满足高并发、低延迟的业务需求。

diaoqu4574的博客 402

WebService接口和http接口(API接口)的区别

WebService接口和http接口(API接口)的区别

weixin_42113716的博客 3790

GPS-SDR-SIM使用详解

GPS-SDR-SIM 是一款开源工具,能够生成 GPS 基带信号数据流,这些数据流可通过软件定义无线电(SDR)平台(如 ADALM-Pluto、bladeRF、HackRF、USRP 等)转换为射频(RF)信号。简单来说,它能模拟 GPS 卫星信号,帮助开发者或爱好者测试 GPS 接收设备的性能,而无需依赖真实的卫星信号。

qq_35621280的博客 1241

[面试]SoC验证工程师面试常见问题(三)

SoC 验证工程师面试中,SystemVerilog、UVM 和 SystemC 的代码题目通常涵盖面向对象编程、约束随机化、UVM 组件设计、内存建模等主题。通过练习上述示例题目和理解关键点,你可以更好地应对现场编码环节。如果有具体的面试方向(如特定协议验证)或公司偏好,可以提供更多信息,我会进一步定制题目和答案。祝你面试顺利!

元直的博客 1616

webservice接口和http接口(API接口)的区别

web service(SOAP)与HTTP接口的区别: 什么是web service? 答:soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式Content-type设置为: text/xml任何数据都可以xml化。为什么要学习web service? 答:大多数对外接口会实现web service方法而不是http方法,如...

weixin_30480075的博客 7208

斑马算法优化变分模态分解ZOA-VMD数字信号去噪(优化K值 alpha值)【含Matlab源码 4887期】

斑马算法优化变分模态分解ZOA-VMD数字信号去噪(优化K值 alpha值) 完整的代码,包运行;运行操作视频见优快云资源!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 811

Http、Socket、WebSocket、WebService(SOAP)之间的区别

16位,32位,64位?WebService也一样,WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,WebService 服务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。因为是基于XML的,所以 WSDL 既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。

weixin_64157795的博客 566

MATLAB基础应用精讲-【数模应用】数字预失真(DPD)(附MATLAB代码实现)

近年来,随着无线通信技术的发展,高功率放大器 (PA) 在提高信号传输功率的同时,也带来了非线性失真问题。PA的非线性失真会造成信号频谱扩展、功率下降、邻道干扰等问题,严重影响系统性能。为了克服PA的非线性失真,数字预失真 (DPD) 技术应运而生。DPD技术通过在发射机中引入一个非线性模块,对信号进行预失真处理,从而补偿PA的非线性失真。

qq_36130719的博客 896

GPU 运维实战:H100/H800/B300 换卡与压测

(烧多久、看什么、什么算合格)。文末还给了一个能直接跑的验收判定脚本,三个真实场景的裁决输出都在。

老韩的Linux云计算架构师进阶之路 270

webService、webSocket、socket、http之间的区别

HTTP HTTP 是基于请求响应式的,即通信只能由客户端发起,服务端做出响应,无状态,无连接。 无状态:每次连接只处理一个请求,请求结束后断开连接。 无连接:对于事务处理没有记忆能力,服务器不知道客户端是什么状态。 以往实现即时通讯的手段: 轮询:客户端定时向服务器发送 Ajax 请求,服务器接到请求后马上返回响应信息并关...

zhouzuoluo的博客 1192

基于 Python + Flask + Echarts 的疫情监控系统

基于 Python + Flask + Echarts 的疫情监控系统

743

HTTP、Websocket、Webservice区别(转载)

16位,32位,64位?WebService也一样,WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,WebService 服务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。因为是基于XML的,所以 WSDL 既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。

qq_42880092的博客 1812

古月学院《如何在Gazebo中实现阿克曼转向车的仿真》课程资料在ROS Noetic版本中运行时的常见错误及解决方法

   最近想在Gazebo中开发一些仿真内容,于是购买了古月学院的《如何在Gazebo中实现阿克曼转向车的仿真》课程,但是由于ROS 版本的更新,拿到手的课程资料不能直接在ROS Noetic版本中运行,经过我这几天的探索,对遇到的错误及解决方法进行了整理,方便后面购买课程的小伙伴更快的成功运行程序    在文章正式开始之前,先放一下我之前为了寻找该资料报错的原因,而写的两篇与该课程相关的文章链接,感兴趣的可以自行阅读    以阿克曼转向车为例对URDF和XACRO文件进行解读(点击可跳转)    将x

慕羽★的博客 5974

使用R语言整理GEO数据的简易教程

本教程介绍了使用R语言从GEO数据库下载数据并进行数据整理的基本步骤。根据实际研究问题,你可能需要进行更复杂的数据处理和分析。R语言作为一种强大的生物信息学工具,为GEO数据的整理、分析和可视化提供了丰富的功能和工具。希望这个教程能够帮助你入门GEO数据整理和R语言的应用。如果你在使用过程中遇到问题,或需要进一步的指导,请随时向我询问。祝你在GEO数据分析的旅程中取得成功!

Mrrunsen的博客 3743

http webservice restful rpc websocket socket

最近碰到一些通信需求,对一些协议和技术稍作了解,理解如下,尚有不足。 http和websocket都是应用层协议。 http对于复杂大量的远程调用不太方便,不利于开发,所以就衍生出了webservice、restful、rpc。 websocket主要是解决长连接问题,不像http一问一答,而是全双工通信,可以相互通信。它不是为了解决频繁的远程调用,是为了解决双方互相通信。 http标准的html传输协议,属于应用层协议,底层是socket封装(介于应用层和传输层)和TCP协议(传输层协议) 端口号归TCP

dieyuechaoren的专栏 777

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

webService-Socket和webService的区别

两者区别: Socket 是基于TCP/ip的传输层协议 Webservice是基于http协议传输数据,http是基于tcp的应用层协议 Webservice采用了基于http的soap协议传输数据。 Socket接口通过流传输,不支持面向对象。 Webservice 接口支持面向对象,最终webservice将对象进行序列化后通过流传输。 结论: Webservice采用soap协议进行通信,...

MACHENIC的博客 1211

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

http和webservice接口区别

参考如下地址文档: https://www.cnblogs.com/xiaoyaowuming/p/5622790.html http://blog.youkuaiyun.com/zuoanyinxiang/article/details/50434247 httpservice通过post和get得到你想要的东西webservice就是使用soap协议得到你想要的东西,相比httpservice能处理...

weixin_30832983的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

socket/WebSocket/WebService/http/https概念

学习了这么久的java技术, 但是这5个 socket/WebSocket/WebService/http/https 概念还不是很清楚, 总是很模糊,或者是弄混. 惭愧! ! 学习之前, 要对这个网络七层协议有个了解 网络七层协议从低到高: 1、物理层(Physical Layer)、 2、数据链路层(Data Link Layer)、 3、网络层(Network Lay...

qq_27088383的博客 597

WebService

WebService技术WebServiceWebService概念 WebService 最近项目中碰到用WebService与上位进行通信的场景,于是在网上看了很多关于WebService的资料,接下来说一说我本人对WebService的理解。 WebService概念 WebService是一个跨编程语言和操作系统平台的远程调用技术,当一个系统由两个公司共同开发的时候经常会用到这种技术, ...

m0_51863384的博客 2205

socket 和 webservice 的区别和比较

socket 和 webservice 的区别和比较 1、socket是一种协议,采用tcp或udp协议通信。        Tcp、udp属于网络层,上边各层的应用都需要我们自己实现,例如端口的定义,数据包的定义,数据包的加密解密等。2、webservice是一种服务,采用HTTP协议通信,Soap作为数据格式。HTTP是基于TCP的应用层协议        HTTP协议属于应用层,通过服务器才...

随风而来的温柔 2037

Webservice与socket的区别

Webservice与socket的的通信图示:两者区别:Socket 是基于TCP/ip的传输层协议 Webservice是基于http协议传输数据,http是基于tcp的应用层协议 Webservice采用了基于http的soap协议传输数据。 Socket接口通过流传输,不支持面向对象。 Webservice 接口支持面向对象,最终webservice将对象进行序列化后通过流传输。结

cnctcom的博客 6757

webservice、socket、http 、json傻傻分不清楚

刘小行友情转载整理,webservice、socket、http 、json概述

weixin_39307886的博客 1789

http webservice socket的区别

一、socket: socket通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输,主要有udp和tcp两个协议。socket处于网络协议的传输层。 udp协议:广播式数据传输,不进行数据验证 tcp协议:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流。 socket传输的特点: 优点 1) 传输数据为字节级,传输数据可自定义,数据量小(对于手机应用讲:费用低) 2) 传输数据时间短,性能高 3) 适合于客户端和服务器端之间信息实时交互 4) 可以加密,数据安

Robin罗兵 1311

ws协议与http协议的异同_Http、Socket和WebService协议之间的区别

1 数据传输方式1.1 socket传输的定义和其特点所谓socket通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输,主要有udp和tcp两个协议。socket处于网络协议的传输层。udp协议:广播式数据传输,不进行数据验证tcp协议:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流。socket传输的特点:优点1) 传输数据为字节级,传输数据可自定义,...

weixin_34650199的博客 980
上一篇: 微服务架构设计 Spring Boot1.x Dalston版
下一篇: Spring Cloud Kubernetes之实战一配置管理
交个朋友之猿田地
博客等级 码龄15年 15粉丝 53原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值