前端开发之HTTP协议

上一篇👉: 前端开发之WebSocket通信

1. HTTP 1.0 和 HTTP 1.1 之间有哪些区别

#特性HTTP 1.0HTTP 1.1
1连接默认使用非持久连接默认使用持久连接,支持连接复用
2资源请求优化无范围请求支持,可能导致带宽浪费引入 Range 头域,支持部分内容请求
3缓存机制依赖 If-Modified-Since, Expires引入更多缓存控制指令,如 Etag, If-Unmodified-Since
4Host字段新增 Host 字段,支持虚拟主机
5请求方法扩展基础请求方法增加了 PUT, HEAD, OPTIONS 等请求方法

1.连接方面:

  • HTTP 1.0默认采用非持久连接,每请求完一个资源就需要重新建立TCP连接,增加了网络延迟。
  • HTTP 1.1 引入持久连接(Keep-Alive)作为默认模式,允许同一TCP连接处理多个请求响应,显著提高了效率。

2.资源传输优化:

  • HTTP 1.0中,客户端即使只需要资源的部分内容,服务器也会发送整个资源,造成带宽浪费。
  • HTTP 1.1增加Range请求头,支持断点续传,仅传输请求区间的内容,有效利用资源。

3.缓存机制增强:

  • HTTP 1.1扩展了缓存控制指令,如ETag、If-Modified-Since等,提供了更灵活和高效的缓存策略,减少了不必要的数据重传。

4.主机头识别

  • HTTP 1.1新添Host字段,使得单一IP地址上的多虚拟主机得以区分,促进了现代Web托管技术的发展。

5.请求方法扩展

  • HTTP 1.1增加了PUT、HEAD、OPTIONS等请求方法,提升了协议的功能性和灵活性,更好地满足了Web应用的需求。

2.HTTP 1.1HTTP 2.0 的区别

#特性HTTP 1.1HTTP/2
1协议格式基于文本的协议二进制协议,更高效的数据传输
2多路复用单个连接上请求响应顺序处理,潜在队头阻塞问题实现真正的多路复用,减少延迟,解决队头阻塞问题
3头信息压缩无头信息压缩引入 HPACK 压缩算法,减少头信息传输大小
4数据流与优先级控制每个请求作为独立数据流,支持优先级设置
5服务器推送功能支持服务器主动推送资源到客户端,提升加载效率

1. 二进制分帧层:

  • HTTP/2采用了全新的二进制格式而非文本格式,将数据和头信息分割成更小的二进制帧,实现了低开销和高效解析。

2.多路复用技术:

  • 解决了HTTP/1.x的“队头阻塞”问题,HTTP/2允许在一个连接上并行处理多个请求和响应,无需等待前一个请求完成,大大提高了并发性能。

3.数据流和优先级:

  • 每个请求或响应作为独立的数据流,携带唯一IDHTTP/2允许为不同的数据流分配优先级,确保关键资源优先传输。

4.高效头部压缩:

  • 引入HPACK压缩算法,HTTP/2减少头部大小,通过索引和差异编码技术,极大降低了重复头部信息的传输成本。

5. 服务器推送:

  • HTTP/2允许服务器预测性地推送客户端可能需要的资源,无需等待额外请求,进一步优化加载时间和用户体验。

队头阻塞现象:HTTP性能的隐形瓶颈

在传统的HTTP/1.x协议中,遵循严格的"请求-应答"模式,构建了一个线性的数据传输通道。这种模式下,每个请求必须等待前一个请求完成其完整的往返过程后才能开始,形成了单一序列的处理队列。形象地说,这是一种“一列纵队过桥”的模式,每辆“车”(请求)必须等待前一辆完全通过桥梁后才能行驶。

原因剖析:

  • 串行依赖:由于协议规定了报文的发送与接收必须遵循严格的顺序,即“先来先服务”,导致请求无法并行处理,形成串行队列。
  • 无优先排序:队列中的请求不分轻重缓急,完全依据到达顺序决定处理时机,缺乏灵活性。
  • 单点瓶颈:一旦队首请求遭遇延迟,比如响应数据大、服务器处理慢等情况,后续所有请求即便已准备好,也只能被动等待,如同交通拥堵中后面的车辆只能跟随停滞。

后果影响:

  • 性能损耗:无辜的后续请求被迫等待,整体响应时间延长,用户体验受损。
  • 资源闲置:网络带宽和服务器处理能力在等待期间未能充分利用,资源效率低下。
  • 放大效应:网络条件不佳或服务器负载较高时,队头阻塞问题更加凸显,可能引发连锁反应,加剧服务性能下降。

因此,队头阻塞成为了限制HTTP/1.x时代Web性能提升的关键因素之一,也是推动HTTP/2引入多路复用、二进制分帧等技术革新的重要背景。

综上所述,从HTTP 1.0HTTP/2,协议的演进集中在提升性能、效率和功能性上,特别是解决了网络延迟、带宽浪费和并发处理能力的瓶颈,为现代Web应用提供了更加坚实的基础

下一篇👉: 前端开发之HTTP3

  • 10
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水煮白菜王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值