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的主要区别相关推荐

  1. HTTP的前世今生(HTTP1.1,HTTPS,SPDY,HTTP2.0,QUIC,HTTP3.0)

    本文将从HTTP不断发展的时间线来讲解与其相关的知识点,其中包括HTTP1.1,HTTPS,SPDY,HTTP2.0,QUIC,HTTP3.0等,文章中内容涉及面较广,属于扫盲级别,不会特别深入某个知 ...

  2. HTTP1.0,HTTP1.1,HTTP2.0,SPDY,HTTPS你应该知道的一些事

    作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识,希望能给读者带来一些收获,如有不对之处 ...

  3. https 加密、http2.0、keep-alive

    原文地址:https://ainyi.com/44 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议 ...

  4. Http2.0那点事

    此文转自:http://www.open-open.com/lib/view/open1455796649605.html 在我们所处的互联网世界中,HTTP协议算得上是使用最广泛的网络协议.最近ht ...

  5. 计算机网络知识点总结(ICMP、PING、OSPF、TIMEWAIT、CLOSEWAIT、HTTPS、HTTP2.0)

    概述 五层模型 物理层 数据链路层 CSMA/CD协议 PPP协议 MAC地址 局域网 交换机 网络层(IP层) IP地址分类 IP地址与物理地址的区别 ARP协议(重点) ICMP协议(重点) Pi ...

  6. 看完CNCERT周报再来看CNVD周报 报告提示Flash及Http2.0漏洞值得关注

    国家信息安全漏洞共享平台(CNVD)发布2016总第32期周报,报告内容显示本周信息安全漏洞威胁整体评价级别为 中.  本周共收集.整理信息安全漏洞 365 个,其中高危漏洞 183 个.中危漏洞 1 ...

  7. 谈谈HTTP1.0,HTTP1.1和HTTP2.0区别

    >>>点击获取更多文章<<< HTTP定义 HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏 ...

  8. http1.0 http1.1 http2 之间的区别

    一.HTTP基础 1.1 HTTP定义 HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议. 1.2 HTTP发展史 ...

  9. HTTP1.0 HTTP1.1 HTTP2.0总结

    https://mp.weixin.qq.com/s/GICbiyJpINrHZ41u_4zT-A https://blog.csdn.net/striveb/article/details/8423 ...

最新文章

  1. 简单的实现购物车功能,还有不到位的地方,加油!!!
  2. [你必须知道的.NET]第十二回:参数之惑---传递的艺术(下)
  3. Python学习记录day3
  4. python enumerate函数用法
  5. 对于我今后人生受益匪浅的几句话
  6. 数据预处理 泰坦尼克号_了解泰坦尼克号数据集的数据预处理
  7. Python ——告白小程序,添加微信号(快来设置你的freestyle吧)
  8. qthread run结束了算销毁吗_对 精致码农大佬 说的 Task.Run 会存在 内存泄漏 的思考...
  9. Android开发笔记(一百五十二)H5通过WebView上传图片
  10. linux 大量文件 ls卡死,Linux下文件过多导致 ls 命令出现 arguments too long 的问题
  11. comsol光学模块案例
  12. 求一个集合的所有幂集
  13. 服务器两广豪杰维护,逆水寒11月22日更新到几点 世界boss即将掉落逆水之寒
  14. html 锚文本,什么是锚文本,锚文本链接对SEO的影响!
  15. 解决 filezilla 连接服务器失败问题
  16. Java 确定线程池中工作线程数的大小
  17. CSS基础————千本樱滑落的瞬间
  18. 斐讯n1遥控器app(支持休眠和唤醒)——WiFi篇
  19. Android中全局搜索(QuickSearchBox)详解(一)
  20. 【webrtc】视频特效的添加(15)

热门文章

  1. 用 RxSwift 实现通用的响应式转场
  2. Java程序猿面试体会,还没找到工作的“猿猿们”看过来!
  3. 键盘事件与JS Filter
  4. JS or C#?不存在的脚本之争
  5. 验证身份证合法性的js
  6. Static静态---笔记A
  7. MongoDB数据库简介及安装
  8. 有用的收藏!javascript/c#/asp.net
  9. mysql的zip包的安装方法
  10. windows下sublime通过sftp扩展上传文件到linux服务器上