http协议总结


加密

  1. 对称加密: 即加密的密钥和解密的密钥相同。
  2. 非对称加密:密钥分为公钥和私钥, 公钥可以公开, 私钥需要保密, 客户端公钥加密的数据,服务端可以用私钥来解密。

三次握手(连接建立)

  1. 第一次客户端发送SYN包到服务器, 并进入SYN_SEND状态, 等待服务器确认
  2. 第二次服务器收到SYN包, 并向客户端返回ACK, 同时也发送一个SYN包, 即ACK+SYN包,此时服务器进入SYN_RCVD状态
  3. 客户端收到服务器SYN+ACK包, 向服务器发送确认包ACK,发送完毕后,客户端和服务器进入连接状态,完成三次握手
  4. 完成三次握手, 客户端和服务端开始传输数据

**三次握手保证了不会建立无效连接,从而浪费资源

四次挥手(断开连接)

  1. 客户端发送一个FIN,用来关闭客户端到服务器的数据传输
  2. 服务器收到FIN, 它返回一个ACK,确认序号为收到的序号+1。和SYN一样,一个FIN将占用一个序号
  3. 服务器关闭客户端的连接, 发送一个FIN给客户端
  4. 客户端发回ACK报文确认, 并将确认序号设置为收到序号加1

http协议

基于TCP协议的应用层传输协议,它也是一种无状态的协议,它不会保存请求和响应的通信状态,保持操作的简单性。请求方法,请求版本,请求url, 请求头,请求体等, 响应状态码,响应头,响应体,http版本信息

https的连接过程

  1. 首先客户端先给服务器发送一个请求。
  2. 服务器发送一个SSL证书给客户端,内容包括:证书的发布机构,有效期,所有者,签名算法,指纹算法以及公钥。
  3. 客户端接受后会验证证书的安全性,如果验证通过,会随机生成一个随机数, 用公钥对其加密,发送到服务端
  4. 服务端接受这个加密后的随机数后,用私钥进行解密,得到真正的随机数,然后用这个随机数当作密钥对需要发送的数据进行对称加密
  5. 客户端在接受到加密的数据,使用随机值对数据进行解密
  6. SSL加密建立,开始进行通信

文章作者:
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 !
评论
  目录