HTTP: HTTP2.0 和 HTTPS

在这里插入图片描述

HTTP 1.1

  • Range和Content-Range:HTTP1.0当请求一个资源时,只能请求该资源完整数据。HTTP1.1可以通过Range和Content-Range实现只请求该资源的部分数据,从而实现断点续传功能。
  • Connection:keep-alive。HTTP是无状态连接协议,HTTP1.0每次发送请求都要创建新的TCP连接,反复创建连接造成大量连接耗时。HTTP1.1通过创建长连接可以实现创建一次连接发送多个请求,有效的减少了需要多次请求数据时新连接创建的成本,解决传输的问题。
  • Host:HTTP1.0每台服务器默认仅与一个IP地址绑定,而虚拟机技术使一个IP能够对应多个域名、负载均衡技术使一个域名能够对应多个域名,这打破了IP与域名或主机的一一对应关系。HTTP1.1通过请求头Host字段指定请求的域名帮助实现一个IP多个虚拟主机和多个IP负载均衡,如果不进行设置将会返回响应码400 Bad Request。

HTTP 2.0

  • 头部压缩: HTTP2.0通过HPACK对header进行压缩,减小请求的头部大小。
    Hpack算法的过程:
    • 发送端和接受端共同维护一份静态表和一份动态表,这两个表合并作为字典
    • 发送方根据字典内容及特殊指定,对header进行编码以压缩体积
    • 接收方根据字典进行解码,并根据指令判断是否需要更新动态表
  • Server Push:HTTP1.1只能从客户端发送请求、从服务端响应请求。HTTP2.0服务器可以主动向客户端推送某些数据,当客户端需要时可以直接在本地缓存中进行获取。
  • 多路复用:
    • HTTP1.1处理请求时数据是串行传输的,由于客户端不能判断字节顺序,所以数据只能依次传递,当传输多个文件时,传输效率就会降低。HTTP2.0使用二进制数据帧概念对数据顺序进行标识,客户端根据顺序标识对数据进行合并,这样数据传输就能够进行并行传输,而不必串行传输。
    • HTTP1.1同时处理多个请求时,客户端受到浏览器最大请求数限制,导致请求最终完成时间延缓,服务端则受到连接数过多影响,承载能力被占用过多,HTTP2.0由于请求数据并行传输,则不必建立额外链接,只用一路链接多路复用进行数据传输。
      在这里插入图片描述

HTTPS

HTTPS = HTTP + SSL/TLS

HTTPS 在HTTP 的基础上加入了SSL,HTTPS 的安全基础就是 SSL,使用SSL实现加密的详细内容。

HTTPS 默认端口(443)不同于 HTTP 默认端口(80),同时HTTPS在 HTTP与 TCP 之间存在一个加密/身份验证层,最终提供了身份验证与加密通讯方法,其原理如下:
① 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器 [2] ;
② 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数 [2] ;
③ 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作 pre_master_secret 的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加 / 解密),并将加密后的信息发送给服务器 [2] ;
④ 客户端与服务器端根据 pre_master_secret 以及客户端与服务器的随机数值独立计算出加密和 MAC密钥(参考 DH密钥交换算法) [2] ;
⑤ 客户端将所有握手消息的 MAC 值发送给服务器 [2] ;
⑥ 服务器将所有握手消息的 MAC 值发送给客户端 [2] 。

HTTP和HTTPS两者之间的差别在于数据加密,示例如下:
加密前:
加密前
加密后:
加密后
从展现的数据能够发现,如果我们数据里掺杂了如账号密码等个人信息,明文传输被拦截造成的结果是灾难性的,而https就是通过加密安全性处理来尽量避免这种情况,不过加密和解密自然时需要时间(SSL时间)来完成的,得益于现代计算机的高速处理能力,这个问题已经被大大弱化了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值