HTTP
五、三次握手和四次挥手
1、三次握手
主要作用是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备
- 第一次握手:客户端给服务端发送一个**
SYN
报文,并指明客户端的初始化序列号ISN(c)
,此时客户端处于SYN_SENT
**状态。确认客户端的发送能力和服务端的接收能力
- 第二次握手:服务端收到客户端的**
SYN
报文之后,会以自己的SYN
报文作为应答,为了确认客户端的SYN
,将客户端的ISN
+1作为ACK的值,此时服务器处于SYN_RCVD
**状态。确认服务端的发送能力和客户端的接收能力
- 第三次握手:客户端收到
SYN
报文之后,会发送一个**ACK
报文,值为服务器的ISN
+1。此时客户端处于ESTABLISHED
状态,服务器收到ACK
报文之后,也处于ESTABLISHED
**,此时双方建立了链接。双方的发送、接收能力均正常
2、四次挥手
- 第一次挥手:客户端发送一个
FIN
报文,报文中会指定一个序列号。此时客户端处于FIN_WAIT1
状态,定制发送数据,等待服务端的确认。 - 第二次挥手:服务端收到
FIN
之后,会发送ACK
报文,且把客户端的序列号值+1作为ACK
报文的序列号值,表明已经收到客户端的报文了,此时服务端处于CLOSE_WAIT
状态。 - 第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发送
FIN
报文,且指定一个序列号。此时服务端处于LAST_ACK
的状态 - 第四次挥手:客户端收到
FIN
之后,一样发送一个ACK
报文作为应答,且把服务端的序列号值+1作为自己ACK
报文的序列号值,此时客户端处于TIME_WAIT
状态。需要过一阵子以确保服务端收到自己的ACK
报文之后才会进入CLOSED
状态,服务端收到ACK
报文之后,就会关闭连接了,处于CLOSED
状态。
八、HTTP和HTTPS区别
- HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS进行了加密处理相对安全
- HTTP和HTTPS使用连接方式不同,默认端口也不同,HTTP是80,HTTPS是443
- HTTPS由于需要设计加密以及多次握手,性能方面不如HTTP
- HTTPS许哟啊SSL,SSL证书需要钱。
十三、WebSocket
是一种网络传输协议。双全工通信:允许数据在两个方向上同时传输,他在能力上相当与两个单工通信方式的结合。