跳到主要内容

说一下http和https

HTTP和HTTPS都是应用层协议,而HTTPS在HTTP基础上加入了传输层的SSL/TLS协议,使通信过程更加安全可靠。

简单来说,HTTP(超文本传输协议)是一种可以在网络上进行数据通信的协议,其中数据以纯文本形式传输。而HTTPS(安全超文本传输协议)则是一种具有安全性的HTTP通信方式,它采用了SSL/TLS协议,通过加密传输技术来保证数据的安全性。

HTTPS与HTTP主要的区别在于:

安全性:HTTPS通信使用SSL/TLS协议进行数据加密,传输的数据经过加密处理,比HTTP更加安全可靠。

传输方式:HTTP使用明文传输方式,数据不加密;而HTTPS先进行SSL握手,建立安全通道,然后再进行数据传输。

连接方式:HTTP连接是无状态的,每次请求都需要重新建立连接;而HTTPS可以复用已经建立的安全连接,减小了网络负担和数据传输的时间。

总的来说,HTTP适用于对安全性要求不高的网络数据传输场景,例如读取博客、浏览网页等。而对于一些需要进行数据交换的场景,特别是涉及到敏感信息的场景,应该使用HTTPS协议,确保数据的安全性。

https 协议的工作原理

  1. 客户端发送HTTPS请求到服务器。
  2. 服务器返回数字证书给客户端,该数字证书中包含了必要的信息,如证书持有者、证书颁发机构、公钥等等。
  3. 客户端检查数字证书的合法性,如证书的颁发机构是否被信任、证书是否已过期,如果数字证书是被信任的,那么会从证书中取出服务器的公钥。
  4. 客户端生成一个随机的对称加密密钥,使用服务器的公钥进行加密,并将加密的密钥发送给服务器。
  5. 服务器使用自己的私钥进行解密,得到客户端生成的对称加密密钥。
  6. 服务器使用该对称加密密钥对数据进行加密,并将加密的数据发送给客户端。
  7. 客户端使用对称加密密钥进行解密,得到服务器发送的加密数据。

上述过程中,SSL/TLS协议是HTTPS实现安全传输的关键点。在数字证书进行验证、密钥协商和数据传输过程中,SSL/TLS协议采用了多种加密算法和安全机制来保障通信的安全性。

这里需要注意,虽然https协议进行了加密传输,但是并不能保证数据的绝对安全。黑客和病毒仍然可以通过某些手段进行攻击和破解,因此我们在使用HTTPS的时候仍然需要注意安全性和保护个人信息。

https 协议的缺点

  1. https 握手阶段比较费时,会使页面加载时间延长 50%,增加 10%~20%的耗电。
  2. https 缓存不如 http 高效,会增加数据开销。
  3. SSL 证书也需要钱,功能越强大的证书费用越高。
  4. SSL 证书需要绑定 IP,不能再同一个 ip 上绑定多个域名,ipv4 资源支持不了这种消耗。
  5. 性能开销:HTTPS协议需要使用SSL/TLS协议进行加密计算,加重了服务器和客户端的负担,因此,HTTPS在数据传输的速度、CPU占用率以及内存使用等方面,相对于HTTP有更高的性能开销。
  6. 证书费用:为了使用HTTPS协议,需要从权威的数字证书颁发机构(CA)处获得SSL数字证书,而这会产生额外的费用。
  7. 部署和配置:HTTPS在部署和配置方面比较复杂,需要对服务器和客户端的软件和硬件进行一系列的配置和优化操作,包括选择合适的加密算法、配置证书、优化协议等。
  8. 难以抓包:HTTPS加密在传输过程中,导致数据无法再被普通的网络抓包识别,这会给数据分析和网络监测方面的工作带来很大的困难。