一、概述
技术实现不分绝对好坏,只分适合场景之分。好比没有绝对差的员工,只有不善于将人员分配到适当位置的领导。
二、Socket
背景:说到socket,我们需要先看一下它诞生的背景,假设一种情况: 我们想让不同的进程进行网络通信,那么就需要每个进程都需要有一个唯一的标识,但是在不同的操作系统上面进程的PID可能会出现重复的问题,由此也是行不通,为了解决这个问题,TCP/IP协议派上了用场,IP协议可以唯一的表示一台计算机,TCP中的协议类型和端口可以唯一的标示一个计算机中的进程这样就实现了不同计算机之间不同进程的网路通信问题。那么存在一个问题是我们在开发的时候每一次都需要按照面向过程的进行写代码,为了解决这个问题,Socket诞生啦;
概念: 它是位于TCP/IP基础之上的一层协议,是计算机进行通信的基石,是TCP/IP协议组的基本操作单元,进行socket需要一个必要元素: 协议类型是UDP或者是TCP、源主机地址、源主机地址进程的端口、目标主机地址、目标主机进程的端口;它不是一个协议而是基于TCP/IP封装了TCP/UDP类型对上层提供了一套基于c的api接口;
Socket实现服务器与客户端之间的物理连接,并进行数据传输。主要有TCP/UDP两个协议。Socket处于网络协议的传输层。
TCP:传输控制协议,面向连接的的协议,稳定可靠。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。
UDP:广播式数据传输,UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
优点:
1.传输数据为字节级,传输数据可自定义,数据量小。相应的移动端开发,数据流量传输较小,因此手机费用低
2.传输数据时间短,性能高
3.适合C/S之间信息实时交互
4.可以加密,数据安全性高
缺点:
1.需要对传输的数据进行解析,转化为应用级的数据
2.对开发人员的开发水平要求高
3.相对于Http协议传输,增加了开发量
三、HTTP
背景:HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示。
概念:Http请求主要有http协议,基于http协议的soap协议,常见的http数据请求方式有get和post,web服务
优点:1.基于应用级的接口使用方便
2.要求的开发水平不高,容错性强
缺点: 1.传输速度慢,数据包大。
2.如实现实时交互,服务器性能压力大
3.数据传输安全性差
四、Socket和HTTP的各自应用场景
Socket适用场景:网络游戏,银行交互,支付。因为对实时性和安全性要求高。
Http适用场景:公司OA服务,互联网服务。
附重要概念:
TCP:
TCP是一种面向连接、可靠性高位于传输层的通信协议:
面向连接: 因为TCP在进行通信之前会进行三次握手,断开连接会进行四次分手;
可靠性高: 因为TCP会对网路环境进行拥塞控制、流量控制;
网友评论