socket/WebSocket/WebService/http/https区别

本文介绍了socket、WebSocket、WebService、HTTP和HTTPS五种网络协议,包括它们的定义、特点、适用场景和相互区别。socket作为传输控制层接口,提供服务器和客户端的物理连接;WebSocket是HTML5提出的全双工通信协议;WebService是跨编程语言和跨平台的远程调用技术;HTTP是应用最广泛的网络协议;HTTPS则是HTTP的安全版本,用于加密和身份验证。
摘要由CSDN通过智能技术生成

学习了这么久的java技术, 但是这5个 socket/WebSocket/WebService/http/https  概念还不是很清楚, 总是很模糊,或者是弄混. 

学习之前, 要对这个网络七层协议有个了解

网络七层协议从低到高:

1、物理层(Physical Layer)、

2、数据链路层(Data Link Layer)、

3、网络层(Network Layer)、

4、传输层(Transport Layer)、     ---------socket(发动机/提供了网络通信的能力。socket是一切通过端口通信的基础(包括http))

5、会话层(Session Layer)、

6、表示层(Presentation Layer)、

7、应用层(Application Layer)    ---------http(轿车/提供了封装或者显示数据的具体形式(超文本传输协议))  /webSocket(是HTML5规范提出的一种协议,基于也是应用层)  /FTP协议(File Transfer Protocol,文件传输协议)

 最通俗易懂的网络应用层协议详解 :https://blog.csdn.net/qq992817263/article/details/56669228

什么是协议? : 协议是一种约定,我们规定好一种信息的格式,如果发送方按照这种请求格式发送信息,那么接收端就要按照这样的格式解析数据。这就是协议。

一.socket(传输控制层接口)

1.1 socket传输的定义

 所谓socket通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输,主要有udp和tcp两个协议。socket处于网络协议的传输层。Socket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口。
    udp协议:广播式数据传输,不进行数据验证
    tcp协议:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流。

补充:

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

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

 1.2 socket传输的特点:
   优点
   1) 传输数据为字节级,传输数据可自定义,数据量小(对于手机应用讲:费用低)
   2) 传输数据时间短,性能高
   3) 适合于客户端和服务器端之间信息实时交互
   4) 可以加密,数据安全性强
   缺点:
   1) 需对传输的数据进行解析,转化成应用级的数据
   2) 对开发人员的开发水平要求高
   3) 相对于http协议传输,增加了开发量

1.3  socket传输适用范围

  基于socket传输的特点 : socket 传输方式适合于对传输速度,安全性,实时交互,费用等要求高的应用中,如网络游戏,手机应用,银行内部交互等

二. WebSocket(应用层协议)

1.1 WebSocket协议是什么?

WebSocket是HTML5规范提出的一种协议;目前除了IE浏览器,其他浏览器都基本支持。和HTTP协议是并存的两种协议(Websocket和HTTP有关系,但是关系不大, websocket在首次建立连接时要使用下http协议(服务器返回101,则表示c/s由http协议升级websocket协议成功)。但是值得注意的是,这只是他们之间唯一的仅有的相同点。除此之外,他们完全不同。,如图:

 )。

WebSocket是HTML5中的协议。HTML5 Web Sockets规范定义了Web Sockets API,支持页面使用Web Socket协议与远程主机进行全双工的通信。它引入了WebSocket接口并且定义了一个全双工的通信通道,通过一个单一的套接字在Web上进行操作。HTML5 Web Sockets以最小的开销高效地提供了Web连接。相较于经常需要使用推送实时数据到客户端甚至通过维护两个HTTP连接来模拟全双工连接的旧的轮询或长轮询(Comet)来说,这就极大的减少了不必要的网络流量与延迟。

1.2 WebSocket协议有什么特点?

♥ Websocket是基于HTTP协议的.但是和http最大的不同是:
  a. WebSocket是一种双向通信协议。在建立连接后,WebSocket服务器端和客户端都能主动向对方发送或接收数据,就像Socket一样;(而http服务端不能主动联系客户端,只能有客户端发起,太被动啦)
  b. WebSocket需要像TCP一样,先建立连接,连接成功后才能相互通信

补充: 传统http是 一发一收关闭,每次请求-应答都需要客户端与服务端建立连接的模式(每次都要重新发起连接请求).
     而一旦WebSocket连接建立后,在客户端断开WebSocket连接或Server端中断连接前,不需要客户端和服务端重新发起连接请求。

♥ Websocket是一个持久化的协议.
  (只要建立一次HTTP请求,就可以连续不断的得到服务器推送的消息,节省带宽和服务器端的压力,也可以用long poll 和 ajax 轮询 来 模拟出类似的效果)
     eg: 客户端:我要建立websocket连接 
         服务器端:好的,已经切换到websocket协议,websocket连接已经建立
      客户端: 有什么消息要及时告诉(推送)我
      服务器端:好的
      服务器端:xxxxxx
         服务器端:yyyyyyy
         。。。。。

1.3 WebSocket 协议案例

首先我们来看个典型的 Websocket

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值