Http协议:由于HTTP简单快速的特性,当客户端向服务器端请求数据的时候,只需要传送请求方法和路径就可以取到结果,基于TCP,默认端口号为80,耗时可以简略计算为1RTT,传递的数据全部是明文传输,几乎没有安全性。
https协议:HTTPS是基于TLS的,而TLS又基于TCP,当客户端向服务器端请求数据的时候,服务器大概率会将客户端重定向到该服务器的443端口,进行新的TCP连接,此时服务器会返回一个证书文件,而不是响应报文体。此时客户端验证证书文件紧接创建对称密钥,之后重新和服务器建立TLS连接,当服务器返回ACK确认之后,连接正式建立,此时上方整个过程耗时为3RTT,并且之后和服务器的通信数据都是通过对称密钥加密过的,几乎无法破解。
不同点:
(1)、 HTTP是基于TCP的,而HTTPS是基于TLS的。
(2)、HTTP的往返时间为1RTT,而HTTPS的往返时间为3RTT 。
(3)、HTTP的默认端口号为80,而HTTPS的默认端口号为443 。
(4)、HTTP的安全性很差,而HTTPS的安全性很强
加分项:
HTTPS虽然在安全方面有很大的优势,但是缺点也很明显,如下:
(1)、HTTPS握手阶段耗费时间,几乎是HTTP的数倍,会延长页面的首次绘制时间和增加耗电 。
(2)、HTTPS的效率没有HTTP高,如果部分数据内容实际上并不需要加密,会平白浪费计算机资源 。
(3)、HTTPS的证书需要购买,功能越强大的证书价格更高
(4)、HTTPS的加密并不能阻止某些网络攻击,如黑客攻击、拒绝服务攻击等