zoukankan      html  css  js  c++  java
  • 复习:HTTPS和http2.0的改进

    HTTPS和HTTP是什么?

    通信协议。http对数据进行明文传输,https对传输的数据进行加密、证书验证、完整性验证,更加安全。

    HTTPS

    工作过程

    1. 客户端发送请求。
    2. 服务端返回公开密钥证书。
    3. 客户端验证证书,产生会话秘钥并通过公开秘钥加密,将密文发送给服务端。
    4. 服务端通过私有秘钥解密,获得会话秘钥。信道建立完成。将明文内容A用会话秘钥加密,传给客户端。
    5. 客户端收到用会话秘钥解密获得明文,并再次传输。

    加密

    解决内容可能被窃取的问题,秘钥是转换算法中的一些参数。

    对称加密

    客户端和服务端用同一个秘钥。传输时还需要携带秘钥告诉解密方,存在的问题:传输过程中拦截了就获得了秘钥可以对信息进行解密。

    非对称加密

    加密解密存在公开密钥和私有秘钥。私有秘钥只有网站服务端才有,用来解公开密钥加密后的密文。

    证书验证

    解决通信方可能被伪装的问题。

    可信赖的数字证书第三方机构

    公开密钥放入秘钥证书绑定在一起。

    完整性验证

    解决报文信息可能被恶意篡改的问题。

    数字签名

    确认由正确发送方发出;确认无修改。加密私钥,解密公钥。

    1. 发送方通过HASH函数对文本生成摘要信息,对摘要信息通过私钥进行加密,传输时将摘要信息密文一起传输。
    2. 接收方收到数据,非对称解密之后,对文本同样进行摘要处理,将收到的摘要信息通过公钥解密,将解密后的摘要信息和接收方提取的摘要信息比对。
    3. 如果一致,则说明信息没有被篡改。
      理解:摘要公私钥,信息会话,同样方式提取摘要,比对公私摘要。

    HTTPS和HTTP的区别

    1. 端口:HTTPS标准端口为443,HTTP端口为80
    2. 搜索引擎:优先显示HTTPS通信的网站
    3. 证书:有无SSL证书
    4. 安全性

    为什么不是所有的网站都用https?

    1. 流程
    2. 消耗:优化,证书部署到SLB或者CDN上
    3. 资金开销
    4. 安全意识

    http1.0存在的问题

    1. 文本传输请求头部
    2. 每个请求新建TCP连接,然而浏览器对请求由数量限制,队头阻塞导致资源加载等待。

    http2.0的改进

    1. 多路复用。一个TCP连接复用传输所有数据。
    2. 二进制传输。
    3. 头部压缩编码和两端维护索引表,记录头部信息。传输可以查询索引表键名找到键值。
    4. 服务端主动push必要资源。

    http2.0存在的问题

    1. tcp丢包重传重建,资源等待
  • 相关阅读:
    CSS实现文字上标、下标
    Inellij idea创建javaWeb以及Servlet简单实现
    利用Intellij+MAVEN搭建Spring+Mybatis+MySql+SpringMVC项目详解
    IntelliJ IDEA使用教程一 介绍&安装&配置
    JavaScript定时器实现的原理分析
    将 Django 应用程序部署到生产服务器
    html中的table导出Excel (亲测有用(●'◡'●))
    HTML用JS导出Excel的五种方法
    JS 导出网页中Table内容到excel
    Python数据库连接池实例——PooledDB
  • 原文地址:https://www.cnblogs.com/vera-7c/p/13682218.html
Copyright © 2011-2022 走看看