• http协议的数据传输是明文传输,不安全。https采用SSL/TLS协议进行加密处理,相对安全
  • httphttps使用的连接方式不同,默认端口也不一样,http端口是80https端口是443
  • https需要设计加密以及多次握手,性能方面不如http
  • https需要SSL证书,SSL证书需要钱

https的请求过程。

  1. 客户端向服务器发起HTTPS请求,连接到服务器的443端口;
  2. 服务器端有一个密钥对,即公钥(即数字证书)和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人;
  3. 服务器将自己的公钥发送给客户端;
  4. 客户端收到服务器端的公钥之后,检查其合法性,如果发现发现公钥有问题,那么HTTPS传输就无法继续,如果公钥合格,则客户端会生成一个客户端密钥,然后用服务器的公钥对客户端密钥进行非对称加密成密文,至此,HTTPS中的第一次HTTP请求结束;
  5. 客户端发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器;
  6. 服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文;
  7. 然后服务器将加密后的密文发送给客户端;
  8. 客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。这样HTTPS中的第二个HTTP请求结束,整个HTTPS传输完成。

简述:客户端发起请求,服务端发送公钥给客户端,客户端验证公钥的合法性,验证通过,用公钥生成私钥,并用公钥进行加密,然后发送给服务端,服务端用自己的私钥进行解密,得到客户端的私钥,服务端用客户端的私钥进行加密传送,客户端接受到密文用客户端的私钥进行对称解密,得到服务器发送的数据
https原理