《HTTP

一:HTTP 缺点?

  - 明文通讯(也是最受诟病的一个缺点)

  - 不验证对方的身份(你说你是你?你怎么证明你是你呢?)

  - 无法验证报文的完整性,可能已经被篡改(在挨打的边缘,来回试探)

二:HTTPS概述(采用非对称加密方式 + 对称加密)

  - 基于HTTP协议

    - SSL(Secure Socket Layer 安全套接层)为 HTTPS 提供安全的通信管道

    - TLS(Transport Layer Security 安全层传输协议)为 HTTPS 安全的数据传输(数据的加解密处理、身份验证以及数据完整性)。

3:HTTPS通信步骤

  - 浏览器发起请求

    - 访问服务器的443端口发起请求,请求携带了浏览器支持的加密算法和哈希算法

  - 服务器收到请求

    - 选择浏览器支持的加密算法和哈希算法。同时把 带有[公钥+颁发机构+过期时间等]的证书返回给客户端 (同时还有证书的hash摘要)。

  - 浏览器进入数字证书认证环节(hash摘要相同),这一部分是浏览器内置的TLS完成的:

    - 浏览器会根据证书找到服务器下发证书对应的机构。

      - 如果查到了对应的机构,则取出该机构颁发的公钥。

      - 如果没找到,提示用户该证书是不是由权威机构颁发,是不可信任的。

    - 用机构的证书公钥解密得到证书的内容和证书签名,内容包括网站的网址、网站的公钥、证书的有效期等。

      - 浏览器会先验证证书签名的合法性。

      - 签名通过后,浏览器验证证书记录的网址是否和当前网址是一致的,不一致会提示用户。

      - 如果网址一致会检查证书有效期,证书过期了也会提示用户。

    - 认证通过后浏览器生成一个随机数R,并使用网站公钥对R进行加密

  -  浏览器将加密的R传送给服务器。

  -  服务器用自己的私钥解密得到R。(因为非对称加密计算量大,整个通信过程只会用到一次非对称加密算法,之后通信都是通过对称加密算法)

  -  服务器以R为密钥使用了对称加密算法加密网页内容并传输给浏览器。

  -  浏览器以R为密钥使用之前约定好的解密算法(对称加密算法)获取网页内容。

  - 

四:HTTPS 缺点

  -比 HTTP 慢 2~100 倍。(慢在了HTTP通信和加解密计算)

  - HTTPS连接服务器端资源占用高很多,支持访客多的网站需要投入更大的成本。

  - 多余的网络负载和网络IO

  - 加密/解密 算法也会使得CPU多出很多开销。

  - 贵/花钱

五:参考

  - 深入浅出 HTTPS 工作原理

原文地址:https://www.cnblogs.com/25-lH/p/9470886.html