HTTP 与 HTTPS 的区别及工作方式

118 阅读2分钟
HTTPHTTPS
端口80443
加密方式不加密传输加密和身份认证

HTTPS 的工作方式

第一阶段

  1. 客户端→服务器:HTTPS请求,请求信息:客户端支持的算法和密钥长度。
  2. 服务器→客户端:在对比了双方支持的算法过后,服务器选择一种算法,并附带上密钥组件发给客户端。
  3. 服务器→客户端:包含数字证书的报文。该证书中有颁发机构、过期时间和服务器公钥。
  4. 服务器→客户端:完成报文。通知客户端SSL第一阶段协商完成。

第二阶段

  1. 客户端→服务器:回应报文。包含客户端生成的随机密码串,该报文是通过公钥加密过的。
  2. 客户端→服务器:提示服务端在此之后的报文均采用 5 中的随机密码串加密。
  3. 客户端→服务器:完成报文。包含从第一次握手至今所有报文的整体校验值,最终协商成功取决于服务端能否成功解密。如果中途有哪个报文被篡改,最终协商就无法完成。
  4. 服务器→客户端:提示客户端在此后报文 均使用 5 中密码串加密。
  5. 服务器→客户端:完成报文。告诉客户端自己可以正确解密。

SSL连接建立完成,之后就和HTTP大同小异,不同的是HTTP不采用明文传输,它采用对称加密,上述过程就是对称密钥的协商过程。 (3.25 腾讯云一面 问到了如何防止数字证书被伪造,后续补充。)

HTTP

HTTP 超文本传输协议是一种简单的请求 - 响应协议,HTTP 使用 TCP(而不是 UDP)作为它的支撑运输层协议。其默认工作在 TCP 协议 80 端口,HTTP 客户机发起一个与服务器的 TCP 连接,一旦连接建立,浏览器和服务器进程就可以通过套接字接口访问 TCP。客户机从套接字接口发送 HTTP 请求报文和接收 HTTP 响应报文。类似地,服务器也是从套接字接口接收 HTTP 请求报文和发送 HTTP 响应报文。其通信内容以明文的方式发送,不通过任何方式的数据加密。当通信结束时,客户端与服务器关闭连接。