HTTP1.0 、 HTTP1.1、HTTP2.0的主要区别
HTTP1.0 VS HTTP1.1
- 长连接:
HTTP1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。
- 缓存:
在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略
带宽优化及网络连接的使用:
- 状态码:
在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除
- 带宽优化:
HTTP 1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,否则返回401。客户端如果接收到100,才开始把请求body发送到服务器。
这样当服务器返回401的时候,客户端就可以不用发送请求body了,节约了带宽。
- HOST:
Host头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。
HTTP1.1 VS HTTP2.0
- 多路复用:
在HTTP/1.1协议中,浏览器客户端在同一时间针对同一域名的请求有一定数据限制。超过限制数目的请求会被阻塞。
HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。
当然HTTP1.1也可以多建立几个TCP连接,来支持处理更多并发的请求,但是创建TCP连接本身也是有开销的。
TCP连接有一个预热和保护的过程,先检查数据是否传送成功,一旦成功过,则慢慢加大传输速度。因此对应瞬时并发的连接,服务器的响应就会变慢。所以最好能使用一个建立好的连接,并且这个连接可以支持瞬时并发的请求。
- 首部压缩:
HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。
- 服务器推送:
当我们对支持HTTP2.0的web server请求数据的时候,服务器会顺便把一些客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取。这种方式非常合适加载静态资源。
文章转载自:https://my.oschina.net/u/2313177/blog/1592737
HTTP1.0 、 HTTP1.1、HTTP2.0的主要区别相关推荐
- HTTP的前世今生(HTTP1.1,HTTPS,SPDY,HTTP2.0,QUIC,HTTP3.0)
本文将从HTTP不断发展的时间线来讲解与其相关的知识点,其中包括HTTP1.1,HTTPS,SPDY,HTTP2.0,QUIC,HTTP3.0等,文章中内容涉及面较广,属于扫盲级别,不会特别深入某个知 ...
- HTTP1.0,HTTP1.1,HTTP2.0,SPDY,HTTPS你应该知道的一些事
作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识,希望能给读者带来一些收获,如有不对之处 ...
- https 加密、http2.0、keep-alive
原文地址:https://ainyi.com/44 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议 ...
- Http2.0那点事
此文转自:http://www.open-open.com/lib/view/open1455796649605.html 在我们所处的互联网世界中,HTTP协议算得上是使用最广泛的网络协议.最近ht ...
- 计算机网络知识点总结(ICMP、PING、OSPF、TIMEWAIT、CLOSEWAIT、HTTPS、HTTP2.0)
概述 五层模型 物理层 数据链路层 CSMA/CD协议 PPP协议 MAC地址 局域网 交换机 网络层(IP层) IP地址分类 IP地址与物理地址的区别 ARP协议(重点) ICMP协议(重点) Pi ...
- 看完CNCERT周报再来看CNVD周报 报告提示Flash及Http2.0漏洞值得关注
国家信息安全漏洞共享平台(CNVD)发布2016总第32期周报,报告内容显示本周信息安全漏洞威胁整体评价级别为 中. 本周共收集.整理信息安全漏洞 365 个,其中高危漏洞 183 个.中危漏洞 1 ...
- 谈谈HTTP1.0,HTTP1.1和HTTP2.0区别
>>>点击获取更多文章<<< HTTP定义 HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏 ...
- http1.0 http1.1 http2 之间的区别
一.HTTP基础 1.1 HTTP定义 HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议. 1.2 HTTP发展史 ...
- HTTP1.0 HTTP1.1 HTTP2.0总结
https://mp.weixin.qq.com/s/GICbiyJpINrHZ41u_4zT-A https://blog.csdn.net/striveb/article/details/8423 ...
最新文章
- 简单的实现购物车功能,还有不到位的地方,加油!!!
- [你必须知道的.NET]第十二回:参数之惑---传递的艺术(下)
- Python学习记录day3
- python enumerate函数用法
- 对于我今后人生受益匪浅的几句话
- 数据预处理 泰坦尼克号_了解泰坦尼克号数据集的数据预处理
- Python ——告白小程序,添加微信号(快来设置你的freestyle吧)
- qthread run结束了算销毁吗_对 精致码农大佬 说的 Task.Run 会存在 内存泄漏 的思考...
- Android开发笔记(一百五十二)H5通过WebView上传图片
- linux 大量文件 ls卡死,Linux下文件过多导致 ls 命令出现 arguments too long 的问题
- comsol光学模块案例
- 求一个集合的所有幂集
- 服务器两广豪杰维护,逆水寒11月22日更新到几点 世界boss即将掉落逆水之寒
- html 锚文本,什么是锚文本,锚文本链接对SEO的影响!
- 解决 filezilla 连接服务器失败问题
- Java 确定线程池中工作线程数的大小
- CSS基础————千本樱滑落的瞬间
- 斐讯n1遥控器app(支持休眠和唤醒)——WiFi篇
- Android中全局搜索(QuickSearchBox)详解(一)
- 【webrtc】视频特效的添加(15)