Skip to content

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

是一种网络传输协议。双全工通信:允许数据在两个方向上同时传输,他在能力上相当与两个单工通信方式的结合。

十四、地址栏输入URL敲下回车后发生了什么

1、URL解析

2、DNS查询

3、TCP连接

4、HTTP请求

5、响应请求

6、页面渲染