Http1.1和Http1.0和Http2.0有什么区别

本文对比了HTTP1.0与HTTP1.1的主要区别,包括缓存处理、带宽优化、错误通知、Host头处理、长连接等改进,并介绍了SPDY协议如何进一步优化HTTP,以及HTTP/2的二进制格式、多路复用、header压缩和服务端推送等特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.http1.1和http1.0的区别:

http1.0最早是在1996年运用于一些简单的网页上和网络请求上。http1.1是1999年才开始运用于各大网站,也是目前运用最为广泛的http协议。

1.在缓存处理上,http1.1较http1.0(If-Modified-Since,Expires等头部请求标签是用来判断缓存的标准)新增了Entity tag,If-Match等头部请求标签,提供了更多的选择来控制缓存策略

If-Modified-Since:它记录了页面最后的修改时间,通过判断时间是否一致,来决定是否需要去服务器拿最新值;

Expires:服务器返回的缓存到期时间。通过和请求时间比较,来决定是否使用缓存。

2.带宽优化和网络连接的使用上,http1.0存在一些带宽的浪费,要一部分却给你整个对象,但是http1.1允许返回你访问的部分,这样更方便开发者自由的选择以便于带宽与连接的充分使用

3.错误通知管理http1.1新增24个错误状态响应码,例如“410”表示服务器上的某个资源永久的删除了。

4.Host头处理,http1.0认为每个服务器都只有一个唯一的IP地址,因此请求消息URL并没有传递主机名(hostname),但是随着虚拟机的出现,他们共用一个IP地址。所以http1.1要求请求消息和响应消息要加Host头域,不加会报400错误。

5.长连接,http1.1支持长连接和请求的流水线处理,一个TCP连接可以传送多个http的请求和响应,减少了建立和关闭连接的消耗和延迟,一定程度上弥补了http1.0每次请求都要建立连接的缺点。(局限性:还是串行发送,按顺序一个个请求,存在队头阻塞问题)

2.SPDY

spdy是http1.x的优化方案,他解决了:

1.降低延迟,多路复用通过多个请求stream(流媒体)共享一个TCP连接的方式,解决了HOL blocking|(队头阻塞)的问题,降低延迟的同时还提高了带宽的利用率。

2.请求优先级,多路复用会带来一个新问题,就是在共享连接中,关键请求可能会阻塞,因此spdy允许设置请求的优先级,这样关键的请求,就可以优先处理。

3.header压缩,http1.x的header很多都是重复多余的,所以选择合适的算法将header压缩,可以减少他的大小和数量。

4.基于https的加密协议,大大提升了数据传输的可靠性。

5.服务端推送,采用spdy的网页,例如客户端发送style.css请求时,服务器返回style.css的同时,还会返回style.js,这样下次就不用发送请求,去获取js了。

spdy构成图:

它位于http之下,SSL之上,可以有效的解决旧版本的兼容问题,还可以使用SSL加密

3.http2.0和http1.x的区别:

1.采用二进制的格式进行解析。http1.x是基于文本解析的,文本具有多样性,而二进制只有0和1,因此决定采用二进制解析,这样维护了协议解析的健壮和方便。

2.多路复用。即连接共享,每一个request请求都可以连接共享机制,多个请求可以连接一个TCP连接,每个请求都有一个id,所以他们可以随机混杂在一起,接收端可以根据id的不同,把不同的请求发到服务器的各个对应的端口。(好处:并行发送,避免等待。)

3.header的压缩。http1.x的header带有大量信息,而且每次都要重复发送header,http2.0通过encoder来减少header的大小,通讯双方各自缓存一份header领域表,这样既避免了重复发送header,又减少了需要传输的大小。

4.服务端的推送。和spdy一样。

 

 

参考文章:https://juejin.im/post/5e5b50eb6fb9a07cae136773#heading-6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值