zoukankan      html  css  js  c++  java
  • 《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 工作原理

  • 相关阅读:
    转载:div和flash层级关系问题
    转载:页面加载swf插件:swfobject
    C++ code:浮点数的比较(Floating-Pointing Number Comparison)
    Deep Learning系统实训之三:卷积神经网络
    C++ code:指针类型(pointer types)
    Linear Algebra(未完待续)
    Deep Learning系统实训之二:梯度下降原理
    C++ code:向量操作之添加元素
    Deep Learning系统实训之一:深度学习基础知识
    机器学习与优化关系、凸集、凸函数简介
  • 原文地址:https://www.cnblogs.com/25-lH/p/9470886.html
Copyright © 2011-2022 走看看