HTTPS和HTTP的区别:
(1)HTTPS是密文传输,HTTP是明文传输;
(2)默认连接的端口号是不同的,HTTPS是443端口,而HTTP是80端口;
(3)HTTPS请求的过程需要CA证书要验证身份以保证客户端请求到服务器端之后,传回的响应是来自于服务器端,而HTTP则不需要CA证书;
(4)HTTPS=HTTP+加密+认证+完整性保护。
HTTPS的请求过程:
(1)客户端向服务器发起HTTPS请求,连接到服务器的443端口;
(2)服务器将非对称加密的公钥传递给第三方数字证书认证机构,以证书的形式回传到客户端;
(3)客户端收到服务器端的公钥之后,根据证书检查其合法性,如果发现发现公钥有问题,那么HTTPS传输就无法继续,如果公钥合格,则客户端会生成一个客户端密钥(client key),然后用服务器的公钥对客户端密钥进行非对称加密成密文,至此,HTTPS中的第一次HTTP请求结束;
(4)客户端发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器;
(5)服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文;
(6)服务器将加密后的密文发送给客户端,客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。这样HTTPS中的第二个HTTP请求结束,整个HTTPS传输完成。