浅谈HTTP各版本间的差异

一. 前导内容

1.1何为HTTP?
        HTTP(HyperText Transfer Protocol)即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,它是万维网交换信息的基础,它允许将HTML(超文本标记语言)文档从Web服务器传送到Web浏览器。

1.2HTTP的工作原理是什么?

        HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

        Web服务器有:Apache服务器,IIS服务器等。

二.HTTP0.9与HTTP1.0的区别

        HTTP0.9是一个很古老的版本,它只支持get请求方式,所以没办法向服务端传送太多的信息。而且它并没有请求头的相关概念,只具备返回HTML字符串的概念。

        HTTP1.0在HTTP0.9的基础上新增了请求头与响应头,使得它在传输中可以指定HTTP协议版本号,以及其他的一些元信息(状态码,缓存,内容编码等),不仅如此,HTTP1.0还扩充了传输的内容格式(图片,视频,音频,二进制等)

三.HTTP1.0与HTTP1.1的区别

2.1缓存处理的不同

        HTTP1.0中主要使用的是If-Modified-Since,Expiers来做缓存判断,而HTTP1.1则是引入了更多的解决策略:Entity tag、If-Unmodified-Since、If-match等,来做出缓存判断

2.2带宽优化

        HTTP1.0中存在着带宽浪费的现象,而HTTP1.1正是对此情况进行了优化处理,HTTP1.1在请求头中引入了range头域,允许只请求某一部分的情况,避免了带宽浪费。

2.3新增Host头处理

        HTTP中认为每台服务器都绑定了一个唯一的IP地址,所以消息中的URL不会传递主机名。而HTTP1.1的请求信息都支持Host头域,并且若无Host头域则会报错。

2.4长连接

        HTTP1.1在HTTP1.0之上可支持长连接和请求的流水线处理,也就是说在一个TCP上可传送多个HTTP请求,减少了建设和关闭连接的消耗和延迟。

        HTTP默认开启Connection:keep-alive,从一定程度上弥补了HTTP1.0每次请求都要创立链接的缺点。

2.5请求方式

HTTP1.1中新增了以下5种请求方式。

(1)PUT:请求服务器存储一个资源

(2)DELETE:请求服务器删除标识的资源

(3)OPTIONS:请求查询服务器的性能,查询相关的选项与需求

(4)CONNECT:保留请求以供将来使用

(5)TRACE:请求服务端回送收到的请求信息,用于测试或诊断

三.HTTP1.1与HTTP2.0的区别

3.1二进制分帧

        HTTP1.1是基于文本的,而HTTP2.0将所有传输的信息分割为了更小的消息和帧,并对它们采用二进制的编码,以此提高传输效率。

3.2多路复用

        HTTP2.0采用了多路复用,也就是在共享TCP链接的基础上同时发出请求和响应,这是HTTP1.1中所没有的一个特性。

3.3头部压缩

        由于HTTP是无状态的,每一个请求都需要头部信息标识这次请求的相关信息,所以会造成传输许多重复的信息,当传输数量庞大时,资源的消耗也是巨大的。而HTTP2.0很好的解决了这一问题,它可以维护一个头部信息字典,差量进行更新头部信息,以此来减少占用的资源。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值