本文摘自原文:https://www.cnblogs.com/111testing/p/6581062.html
1、socket
定义:socket也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输。
协议:主要有udp和tcp两个协议,处于网络协议的传输层。
优点:1) 传输数据为字节级,传输数据可自定义,数据量小(对于手机应用讲:费用低)。
2) 传输数据时间短,性能高。
3) 适合于客户端和服务器端之间信息实时交互。
4) 可以加密,数据安全性强。
缺点: 1) 需对传输的数据进行解析,转化成应用级的数据。
2) 对开发人员的开发水平要求高。
3) 相对于http协议传输,增加了开发量。
适用范围:socket 传输方式适合于对传输速度,安全性,实时交互,费用等要求高的应用中,如网络游戏,手机应用,银行内部交互等。
2、http
定义:常见于B/S架构前后台数据交互,常见的方式是 http 的 post 和 get 请求。
协议:基于http,处于网络协议的应用层。
优点: 1) 基于应用级的接口使用方便。
2) 程序员开发水平要求不高,容错性强。
缺点: 1) 传输速度慢,数据包大(http协议中包含辅助应用信息)。
2) 如实时交互,服务器性能压力大。
3) 数据传输安全性差。
适用范围:基于http协议传输方式适合于对传输速度,安全性要求不是很高,且需要快速开发的应用。如公司oa系统,互联网服务等。
3、WebService
定义:采用SOAP协议的通信标准,SOAP协议基于XML语言,采用 http 传输通信(简单讲 WebService = http + xml)。注意:WebService并非通信协议,而是跨编程语言和跨操作系统的远程接口调用(RPC)的框架技术,是服务端技术。
协议:采用SOAP协议,基于http,处于网络协议的应用层。
优点: 1) 不需要针对数据流的发送和接收进行处理,是一种跨平台的面向对象远程调用技术。
2) 接口支持面向对象,WebService会将对象进行序列化后通过流传输。
3) 走http协议,一般不会被防火墙屏蔽。
缺点: 1) WebService要经过两次序列化,所以导致其传输速度慢。
2) 其余同http缺点一样。
适用范围:WebService不需要针对数据流的发送和就收进行处理,是一种跨平台的面向对象远程调用技术。
4、WebSocket
定义:WebSocket是HTML5出的东西(协议),它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端,采用握手机制,取代了网页和服务器采用HTTP轮询进行双向通讯的机制。
(弄懂WebSocket看这篇文章: https://www.cnblogs.com/fuqiang88/p/5956363.html)
协议:采用http协议完成握手,采用WebSocket协议进行数据传输,应用层协议。
优点: 1) 支持双向通信,实时性更强。
2) 更好的二进制支持。
3) 更小的控制开销,一次连接,多次传输。
缺点: 1) 不兼容低版本的IE。
适用范围:适用于即时通信,社交订阅,协同编辑,视频会议,基于位置的应用,在线教育,智能家居。
总结:http 协议都是对 socket 的再一次封装,socket 是基于传输层的,所以socket 通信的即时性比http好,适合传输大数据量的数据,但是开发成本高,相较于http 难度更大。 http 数据传输需要服务器支撑,开发难度小,适用于 B/S 架构。 WebService 基于http,采用 XML的形式,跨平台行更好,兼容性更强。