http1、http1.1和http2的区别

 我来答
完满且闲雅灬抹香鲸P
2022-07-05 · TA获得超过1.7万个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:70.6万
展开全部

影响一个HTTP网络请求的因素主要有2个:带宽和延迟

主要区别体现在缓存处理:
1⃣️缓存处理。
在http1.0中主要使用header的if-modified-since/expires来做缓存的判断依据。
http1.1引入了更多的缓存策略控制策略。比如Entity tag,If-Unmodified-Since,If-match,If-None-Match等更多可供选择的缓存头来控制缓存。
2⃣️带宽优化及网络连接的使用。
HTTP1.0中存在一些浪费带宽的现象。例如客户端只需要某个对象中的一部分,服务器端却把整个对象送过来了,并且不能支持断点续传的功能。
HTTP1.1在请求头中引入了range头域,它允许只请求资源中的某一部分,即返回码是206(partial content)。方便开发者的自由选择、节省带宽。
3⃣️错误通知的管理。
在HTTP1.1中新增了24个错误状态响应码。如409(conflict)表示请求的资源与资源当前的状态发生冲突,401(gone)表示服务器上的资源被永久的删除。
4⃣️host头处理。
在HTTP1.0中认为每一个服务器都绑定一个ip地址,因此请求消息头中并没有传递主机名(hostname)。
但是随着虚拟主机技术的发展,在一台物理服务器上可以存在多台虚拟主机,并且他们共享一个ip地址。
HTTP1.1中请求和响应都支持host头域,且请求消息中如果没有host头域会报错(400bad request)
5⃣️长链接
HTTP1.1支持长链接和请求的流水线处理,在 一个TCP连接上可以传送多个HTTP请求和响应 ,减少了建立多个连接的消耗和延迟。在HTTP1.1中默认打开onnection:keep-alive,在一定程度上弥补了http1.0每次请求都要重新连接的缺陷。

SPDY优化了HTTP1.x的请求延迟,解决了HTTP1.x的安全性

SPDY的构成图

SPDY位于HTTP之下,TCP和SSL之上,这样就可以轻松兼容老版本的HTTP协议,同时可以使用已有的SSL功能

HTTP2的性能比HTTP1.1好很多,这里是Akamai公司的一个 官方演示

HTTP2.0可以说是SPDY的升级版(原本也是基于SPDY设计的),但是两者还是有一些区别:

服务器推送能把客户端所需要的资源伴随index.html一起发送到客户端,省去了客户端重复请求的步骤。正因为没有发起请求,建立连接等操作,所以静态资源通过服务器推送的方式可以极大地提升速度。

假定一个页面有100个资源需要加载,每一次请求都有1kb的消息头,则至少需要消耗100kb来获取这些请求头。HTTP2.0维护一个字典,差量更新HTTP头部,大大降低因头部传输产生的流量。

HTTP优化的性能并不在于高带宽,而是低延迟。TCP连接会随着时间进行自我调谐,起初会限制连接的最大速度,如果数据传输成功,会随着时间的推移提高传输的速度。这种调谐叫做TCP的慢启动。由于这种原因,让原本就具有突发性和短时性的HTTP连接变得十分低效。
HTTP/2让所有的数据流共用同一个连接 ,可以更有效地使用TCP连接,让高带宽也能真正的服务于HTTP的性能提升。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式