zoukankan      html  css  js  c++  java
  • HTTP各版本的区别

    HTTP和HTTPS的区别

    HTTP

    浏览器与服务器之间以明文的方式传送内容的一种互联网通信协议。
    

    HTTPS

    在HTTP的基础上主要基于SPDF协议结合SSL/TLS加密协议,客户端依靠证书验证服务器身份传递加密信息的通信协议。
    
    时间 版本 功能
    1991年 HTTP/0.9 仅支持GET请求,不支持请求头
    1996年 HTTP/1.0 默认短连接(一次请求建议一次TCP连接,请求完就断开),支持GET、POST、 HEAD请求
    1999年 HTTP/1.1 默认长连接(一次TCP连接可以多次请求);
    支持PUT、DELETE、PATCH等六种请求
    增加host头,支持虚拟主机;
    支持断点续传功能
    2015年 HTTP/2.0 多路复用,降低开销(一次TCP连接可以处理多个请求);
    服务器主动推送(相关资源一个请求全部推送);
    解析基于二进制,解析错误少,更高效(HTTP/1.X解析基于文本);
    报头压缩,降低开销。

    HTTPS请求过程:(一次HTTPS请求要进行两次HTTP传输)

      1.客户端发出https请求,请求服务端建立SSL连接;

      2.服务端收到https请求,申请或自制数字证书,得到公钥和服务端私钥,并将公钥发送给客户端;

      3.客户端验证公钥,不通过验证则发出警告,通过验证则产生一个随机的客户端私钥;

      4.客户端将公钥与客户端私钥进行对称加密后传给服务端;

      5.服务端收到加密内容后,通过服务端私钥进行非对称解密,得到客户端私钥;

      6.服务端将客户端私钥和内容进行对称加密,并将加密内容发送给客户端;

      7.客户端收到加密内容后,通过客户端私钥进行对称解密,得到内容。

    HTTPS怎么校验证书的有效性?

      证书里面包含了公钥+各种信息+签名,公钥加密私钥解,私钥加密公钥解,通过私钥将签名解密后得到的信息和证书里面的信息比对就可以验证证书的合法性了。

      签名是私钥和各种信息加密后形成的签名。

    为什么HTTPS很安全却不普及?

      1.加密通信与普通的文本通信,要消耗更多的CPU和内存,缓存慢,通信成本较大;

      2.HTTPS通信需要证书,而证书不是免费的

  • 相关阅读:
    51nod1229 序列求和 V2
    51nod 1228、1258 序列求和
    题解P3711:【仓鼠的数学题】
    伯努利数学习笔记的说...
    题解 P4692 【[Ynoi2016]谁的梦】
    积性函数与卷积
    题解 P5065 【[Ynoi2014]不归之人与望眼欲穿的人们】
    [Ynoi2018]末日时在做什么?有没有空?可以来拯救吗?
    [51nod1965]奇怪的式子
    PGCD2
  • 原文地址:https://www.cnblogs.com/guanxiying/p/13321603.html
Copyright © 2011-2022 走看看