网络中的Socket是一个抽象的接口
,而是为了方便使用TCP
或UDP
而抽象出来的一层 ,能够理解为网络中链接的两端。一般被叫作套接字接口.html
WebSocket就是其中一种,是为了建立一种双向通讯(全双工)的协议 ,来弥补HTTP协议在持久通讯能力
上的不足web
WebSocket链接的过程是: 首先,客户端发起http请求,通过3次握手后,创建起TCP链接;http请求里存放WebSocket支持的版本号等信息,如:Upgrade、Connection、WebSocket-Version等; 而后,服务器收到客户端的握手请求后,一样采用HTTP协议回馈数据; 最后,客户端收到链接成功的消息后,开始借助于TCP传输信道进行全双工通讯。
Socket是传输控制层接口,WebSocket是应用层协议。算法
http协议:是超文本传输协议,信息是明文传输。若是攻击者截取了Web浏览器和网站服务器之间的传输报文,就能够直接读懂其中的信息。浏览器
https协议:是具备安全性的ssl加密传输协议
,为浏览器和服务器之间的通讯加密,确保数据传输的安全。
安全
一、http协议:http的链接很简单,是无状态的。服务器
二、https协议:是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。websocket
一、http协议:使用的端口是80。网络
二、https协议:使用的端口是443.dom
一、http协议:免费申请。socket
二、https协议:须要到ca申请证书,通常免费证书不多,须要交费。
参考https://www.cnblogs.com/jztan/p/8159086.html
先讲两个概念
ssl协议是非对称加密
先用语言来阐述下:
第一步:爱丽丝给出支持SSL协议版本号,一个客户端随机数(Client random,请注意这是第一个随机数),客户端支持的加密方法等信息;
第二步:鲍勃收到信息后,确认双方使用的加密方法,并返回数字证书,一个服务器生成的随机数(Server random,注意这是第二个随机数)等信息;
第三步:爱丽丝确认数字证书的有效性,而后生成一个新的随机数(Premaster secret),而后使用数字证书中的公钥,加密这个随机数,发给鲍勃。
第四步:鲍勃使用本身的私钥,获取爱丽丝发来的随机数(即Premaster secret);(第3、四步就是非对称加密的过程了)
第五步:爱丽丝和鲍勃经过约定的加密方法(一般是AES算法),使用前面三个随机数,生成对话密钥,用来加密接下来的通讯内容;