前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTTP2基础教程-读书笔记(一)

HTTP2基础教程-读书笔记(一)

作者头像
前端黑板报
发布2018-03-21 16:55:34
8960
发布2018-03-21 16:55:34
举报
文章被收录于专栏:前端黑板报前端黑板报
《HTTP/2基础教程》到手之后,用了两天时间把它粗略的看完了,大致知道了HTTP/2中的一些概念以及诞生的背景,现在再重读一遍同时做一些笔记。此书适合作为自己的案头常备书,不时翻阅一下。

新技术的出现,我们不妨问几个问题:

  1. 它产生的背景是什么?
  2. 它解决了什么问题?
  3. 它的优势是什么?
  4. 它会带来什么引入成本或问题?
  5. 有类似解决方案吗?

本篇文章不会全部回答上面的问题,后续的文章会慢慢解答。

进化史

1963年,提出“超文本”的概念,1965年首次出现在 Ted Nelson 的文章中,其含义:

大量的书面材料或图像材料以复杂的方式相互联系,因此不便在纸介质上呈现或展示。其中可能包含内容摘要,或者内容分布的脉络图以及各部分的内在联系;也可能包含审阅过其中内容的学者所添加的注释、补充或脚注。

1989年,HTTP开始进入人们的视野。Tim Berners-Lee采用了 Ted Nelson 的两个概念:超文本和超媒体。

1991年,HTTP/0.9确立,但是其相当简单,只有 GET 方法,没有首部。设计目的就是获取HTML(纯文本)。

1996年,HTTP/1.0规范通过,相较于0.9更新了大量内容:

  • 首部
  • 响应码
  • 重定向
  • 错误
  • 条件请求
  • 内容编码(压缩)
  • 更多请求方法

......

虽有巨大飞跃但存在多个请求不能共用一个连接、缺少强制Host首部、缓存的选择简陋,依旧影响了Web可扩展的方式。

1999年,HTTP/1.1跟着也被确定,强制客户端提供Host首部,使得虚拟主机托管(一个IP上提供多个Web服务)成为可能。重用TCP连接,提高性能和效率。变更如下:

  • 缓存相关首部的扩展
  • OPTIONS方法
  • Upgrade首部
  • Range(范围)请求
  • 压缩和传输编码
  • 管道化

之后就没有再变化,也不再改进。但是Web发生了翻天覆地的变化,最早只有几千字节、包含资源只有个位数、主要基于文本的网页,如今发展为平均大小超过2MB、包含资源数平均为140的富媒体网站。同时用户对性能的期望也改变了,不能忍受龟速网站。

诞生背景

从上面的进化史可以看出,HTTP/1.1已经不能适应Web时代的发展,Web的发展已经超过了起初创造者的想象。急需要一个能抗住越来越复杂Web应用的协议。也就是在2015年,HTTP/2成为正式协议:可以更好地适应复杂页面,同时又不牺牲速度、支持HTTP/2的应用不断增加、网管可以利用它花很少的成本来提高网站的感知性能。

HTTP/2被寄予的期望

相比于使用TCP的HTTP/1.1,最终用户可感知的多数延迟都有能够量化的显著改善;

  • 解决HTTP中的队头阻塞问题;
  • 并行的实现机制不依赖与服务器建立多个连接,从而提升TCP连接的利用率,特别是在拥塞控制方面;
  • 保留HTTP/1.1的语义,可以利用已有的文档资源,包括但不限于HTTP方法、状态码、URI和首部字段;
  • 明确定义HTTP/2和HTTP/1.x交互的方法,特别是通过中介时的方法(双向);
  • 明确指出它们可以被合理使用的新的扩展点和策略。

个人总结:

顺时代者昌,逆时代者亡。协议亦如此,人异乎?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-02-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端黑板报 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档