HTTP 的发展历程(总结自用)

HTTP 0.9

只是一个草案,纯文本格式。蒂姆.伯纳斯-李最初设想的系统里的文档都是只读的,所以只允许用"GET" 动作从服务器上获取HTML文档,并且在响应请求之后立即关闭连接,功能非常有限。


HTTP 1.0

1996年正式发布

1. 增加了HEAD、POST等方法

2. 增加了响应状态码,标记可能的错误原因

3. 引入了协议版本号概念,

4. 引入了HTTP header头概念

5. 传输的数据不仅限于文本

在1.0中服务器发送完一个http响应后,会断开连接。1.0中确立了大部分现在使用的技术,但是它还不是一个正式的标准

HTTP 1.1

1999年,HTTP1.1发布了RFC文档,

http1.1是目前互联网上使用最广泛的协议,功能也十分完善。

1.增加了PUT、 DELETE等新的方法;
2.增加了缓存管理和控制;
3.明确了连接管理,允许持久连接; 
4.允许响应数据分块(chunked),
利于传输大文件;
5.强制要求Host头,让互联网主机托管成为可能。

1.1中把connection 头写进标准,默认开启久连接,connection:keep-alive。什么时候关闭?timeout=20;设置超时时间;max = xxx;长连接最多接收xxx次请求就断开。

HTTP 2.0

相对于HTTP 1.1来说

1. 提升访问速度

2. 允许多路复用

3. 二进制分帧

HTTP 1.x的解析是基于文本,基于文本协议的格式解析存在天然缺陷。

4. 首部压缩

HTTP 1.x中header有大量信息,且每次都重复发送,HTTP 2.0用encoder减少传输header大小,通讯双方各cashe一份header fileds表。

5. 服务器推送(server push)

http2.0 基于Google的SPDY协议,注重性能改善,但还没有普及。

http3.0基于Google的QUIC协议,是将来的发展方向。

Q1:一个tcp连接可以对应几个http请求?

在长连接里可以对应多个

Q2:tcp连接中http请求发送可以一起吗?

在1.1中,pipelining技术可以完成多个请求同发,但是浏览器默认关闭,所以仍然认为不可行,

在2.0中,Multiplexing多个请求可以在同一个tcp连接中并行进行

Q3:浏览器如何提高页面加载的效率?

同一个连接顺序处理多个或者和服务器建立多个tcp连接。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值