计算机网络

一、http和https

1.默认端口号不同

2. 传输过程不同

3. ssl证书

就是遵守一种传输通信协议,颁发证书之后,网页具有服务器身份验证和数据加密功能。

4. 网络协议

物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

二、加密方式

1. 对称加密

发送方(服务端)和接收方(客服端)使用同一个秘钥进行加密解密

2. 非对称加密

https:使用非对称加密进行秘钥传输,使用对称加密进行数据传输,为了保证首次传输秘钥的安全性,需要网站机构进行密钥的登记,登记之后颁发证书,之后的密钥是安全的。

三、Websocket

允许服务端主动向客户端传输数据,并且浏览器和客户端只需要进行 一次握手就可以建立持久性的连接,并进行双向数据传输。

webSocket连接:通过http进行一次握手

浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,通过http进行一次握手,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。

当你获取 Web Socket 连接并且创建对象后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。

安装 socket.io-client

四、三次握手

1、客户端发送了一个带有SYN(握手信号)的Tcp报文到服务器。表示客户端想要和服务端建立连接。 主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机。

2、服务端接收到客户端的请求,返回客户端报文,这个报文带有SYN和ACK标志,询问客户端是否准备好。 主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包。

3、客户端再次响应服务端一个ACK(确认字符),表示我已经准备好。主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

三次握手

五、四次挥手