初识HTTP(2)

HTTP与HTTPS

区别
  1. HTTP 是超⽂本传输协议,信息是明⽂传输,存在安全⻛险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP ⽹络层之间加⼊了 SSL/TLS 安全协议,使得报⽂能够加密传输。
  2. HTTP 连接建⽴相对简单, TCP 三次握⼿之后便可进⾏ HTTP 的报⽂传输。⽽ HTTPS 在 TCP 三次握⼿之 后,还需进⾏ SSL/TLS 的握⼿过程,才可进⼊加密报⽂传输。
  3. HTTP 的端⼝号是 80,HTTPS 的端⼝号是 443。
  4. HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。

HTTP三个风险:

  1. 窃听风险
  2. 篡改风险
  3. 冒充风险

HTTPS在 HTTP 与 TCP 层之间加⼊了 SSL/TLS 协议,可以很好的解决了上述的⻛险:

  1. 信息加密:交互信息无法被窃取
  2. 校验机制:无法篡改通信内容,篡改了就不能正常显示
  3. 身份证书:验证网站的真伪

HTTPS解决办法:

混合加密的方式实现信息的机密性,解决了窃听的风险

混合加密:

  1. 对称加密只使⽤⼀个密钥,运算速度快,密钥必须保密,⽆法做到安全的密钥交换。

  2. ⾮对称加密使⽤两个密钥:公钥和私钥,公钥可以任意分发⽽私钥保密,解决了密钥交换问题但速度慢。

摘要算法的方式实现完整性,它能够为数据生成独一无二的指纹,指纹用于校验数据的完整性,解决了篡改的风险

将服务器公钥放入到数字证书中,解决了冒充的风险

SSL/TLS协议基本流程

客户端向服务器索要并验证服务器的公钥。

双⽅协商⽣产会话秘钥。

双⽅采⽤会话秘钥进⾏加密通信。

HTTP/1.1、HTTP/2、HTTP/3 演变

HTTP/1.1 相⽐ HTTP/1.0 性能上的改进:

使⽤ TCP ⻓连接的⽅式改善了 HTTP/1.0 短连接造成的性能开销。

支持管道(pipeline)⽹络传输,只要第⼀个请求发出去了,不必等其回来,就可以发第⼆个请求出去,可以 减少整体的响应时间。

HTTP/1.1 性能瓶颈:

请求 / 响应头部(Header)未经压缩就发送,⾸部信息越多延迟越⼤。只能压缩 Body 的部分;

发送冗⻓的⾸部。每次互相发送相同的⾸部造成的浪费较多;

服务器是按请求的顺序响应的,如果服务器响应慢,会招致客户端⼀直请求不到数据,也就是队头阻塞;

没有请求优先级控制;

请求只能从客户端开始,服务器只能被动响应。

HTTP/2对比HTTP/1.1的优化
  1. 头部压缩
  2. 二进制格式
  3. 数据流
  4. 多路复用
  5. 服务器推送

缺陷:多个 HTTP 请求在复⽤⼀个 TCP 连接,下层的 TCP 协议是不知道有多少个 HTTP 请求 的。所以⼀旦发⽣了丢包现象,就会触发 TCP 的᯿传机制,这样在⼀个 TCP 连接中的所有的 HTTP 请求都必须等 待这个丢了的包被重传回来。

HTTP/1.1优化

  1. 通过缓存技术来避免发送 HTTP 请求。客户端收到第⼀个请求的响应后,可以将其缓存在本地磁 盘,下次请求的时候,如果缓存没过期,就直接读取本地缓存的响应数据。如果缓存过期,客户端发送请求的时候 带上响应数据的摘要,服务器⽐对后发现资源没有变化,就发出不带包体的 304 响应,告诉客户端缓存的响应仍然 有效。
  2. 减少 HTTP 请求的次数:
    1. 将原本由客户端处理的定向请求,交给代理服务器处理,这样可以减少定向请求的次数
    2. 将多个⼩资源合并成⼀个⼤资源再传输,能够减少 HTTP 请求次数以及 头部的复传输,再来减少 TCP 连 接数,进而省去 TCP 握⼿和慢启动的⽹络消耗
    3. 按需访问资源,只访问当前⽤户看得到/⽤得到的资源,当客户往下滑动,再访问接下来的资源,以此达到延迟请求,也就减少了同⼀时间的 HTTP 请求次数
  3. 通过压缩响应资源,降低传输资源的大小,从而提高传输效率
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值