zoukankan      html  css  js  c++  java
  • HTTP1.x、HTTP2、HTTPS

    HTTP1.x、HTTP2、HTTPS

    HTTP1.0

    • 短暂的连接:浏览器和服务端只保留短暂的连接,浏览器的每次请求都需要与服务器建立一个TCPL连接,三次握手成本高,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求

      •   解决方案:

        •   添加头信息----非标准的Connection字段Connection:keep-alive

    • 缓存处理方法单一:对于缓存处理只能使用请求头中的If-Modified-Since,Expires等字段。

    • 浪费带宽:当客户端只是需要某个对象的一部分,服务端却会把整个对象响应,会浪费带宽。
    • 没有HOST头信息:默认一个主机只有一个IP地址,没有HOST头,无法处理虚拟主机

    HTTP1.1

    • 改进:

      • 持久连接

        • TCP连接默认不关闭,可以被多个请求复用,不用声明Connection:keep-alive

      • 管道机制

        • 同一个TCP连接中,客户端可以同时发送多个请求

      • 新增请求方式

        • PUT:请求服务器存储一个资源

        • DELETE:请求服务器删除表示的资源

        • OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求

        • TRACE:请求服务器回送收到的请求信息,主要用于测试或者诊断

        • CONNECT:保留将来使用

      • 新增多个状态码
      • 在请求头中引入了range头域,允许请求某一部分的资源
      • 新增多个缓存处理方式,如ETags等
      • 新增了HOST头信息
    • 缺点:TCP连接中,所有的数据通信是按顺序进行的,服务器只有处理完一个请求,才会接着处理下一个。如果前面的处理的特别慢,后面就会有许多请求排队等着

      • 避免方式:减少请求数,躲开持久连接

    HTTP2.0

    • 特点:

      • 采用二进制而非文本格式

      • 完全多路复用,请求是并发的,并且可以为请求设置优先级

      • 报头压缩:

        • HTTP协议是没有状态的,导致每次请求都必须附上所有的信息,所以很多请求字段都是重复的

        • 对于相同的头部,不需要通过请求发送,只需要发送一次

      • 服务器推送:

        • 允许服务器未经请求,主动向客户端发送请求

        • 将客户端需要的内容推送到客户端内存中,避免往返的延迟

    HTTPS

    • HTTP协议通常承载在TCP协议之上,在HTTPTCP之间添加一个安全协议层(SSL或TSL)

    主要作用:
    • 对数据进行加密,并建立一个信息安全通道,来保证传输过程的数据安全

    • 对网站服务器进行真实身份认证

    HTTPSHTTP的区别
    • HTTPS是加密传输协议,HTTP是明文传输协议

    • HTTPS需要用到SSL证书,而HTTP不要

    • HTTPSHTTP更加安全,对搜索引擎友好,利于SEO

    • HTTPS标准端口443,HTTP标准端口80

    • HTTPS基于传输层,HTTP基于应用层

    HTTPSHTTP的工作过程区别
    • HTTP包含动作:

      • 浏览器打开一个TCP请求

      • 浏览器发送一个HTTP请求到服务器端

      • 服务器发送一个HTTP回应信息到客户端

      • TCP连接关闭

    • HTTPS

      • 验证服务端

      • 客户端和服务器端选择加密算法和密码,确保双方都支持

      • 验证客户端

      • 使用公钥加密技术来生成共享加密数据

      • 创建一个加密的SSL连接

      • 基于该SSL连接传递HTTP请求

    HTTPS加密方式
    • 对称加密:加密和解密使用的是同一个密钥

    • 非对称加密:

      • 加密使用的密钥和解密使用的密钥不相同,分别为公钥和私钥

      • 公钥和算法都是公开的,私钥是保密的

      • 过程:

        • 服务端生成配对的公钥和私钥

        • 私钥保存在服务端,公钥保存在客户端

        • 客户端使用公钥加密明文传输给服务端

        • 服务端使用私钥解密密文得到明文

    • 数字签名:签名就是在信息的后面加上一段内容,可以证明信息没有被修改过

  • 相关阅读:
    jQuery常用方法一览
    基于jQuery的AJAX和JSON实现纯html数据模板
    jQuery+ASP.NET的AJAX文件上传
    jquery 新建的元素事件绑定问题
    二、visual studio 2008 快捷键
    Sql Server表相关的语句
    使用临时表
    IIS如何启用Gzip压缩功能
    php5.2 的 php.ini 中文版
    joomla笔记——对joomla的初步认识
  • 原文地址:https://www.cnblogs.com/ashen1999/p/12669471.html
Copyright © 2011-2022 走看看