HTTP1.0和HTTP1.1和HTTP2.0的主要区别

这篇具有很好参考价值的文章主要介绍了HTTP1.0和HTTP1.1和HTTP2.0的主要区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


先上结论,面试常问,同时也是我们学习HTTP协议所必须了解的一些新机制,我们往往学习的都是HTTP1.0的一些基础,1.1 2.0也是企业中常用的东西,也优化了很多nb的属性,下面我们简单来了解下!

HTTP1.0和1.1的区别

长,短连接keep-alive,流水线模式

HTTP 是基于TCP/IP协议的,每一次建立或者断开连接都需要三次握手四次挥手的开销,如果每次请求都要重新建立连接的话,开销会比较大。因此最好能保持一个长连接,同一个c端可以用这个“长连接”来发多个请求。

  • HTTP/1.0中,默认使用的是短连接每次请求都要重新建立一次连接;
  1. 双方建立连接
  2. C端发出请求信息
  3. S端回送响应信息
  4. 双方关掉连接
  • HTTP 1.1起,默认使用报保活机制–“长连接” ,默认开启 Connection: keep-alive 报头字段(close代表关闭);

HTTP/1.1的"长连接"机制有非流水线和流水线 两种工作的方式。

  • 流水线方式是客户端收到HTTP的响应报文之前就能接着发送新的请求报文(不断的push请求过去,和工厂流水线一样,让S端处理)。当然,HTTP服务器S端得按照客户请求的顺序响应,以保证客户端能够区分出其每次请求的响应内容。
  • 非流水线方式是客户在收到前一个响应后才能发送下一个请求

注意:

  • “长连接”加双引号的原因是HTTP是无状态的,因此他并没有什么长短链接的区别,他本质就是一来一回就断开连接,只是keep-alive 报头字段引入了保活机制,让他看起来像“长链接了”!

新增表示IP内某台主机的Host报头属性

  • HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,但虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。那么我们就需区分这些主机名

  • HTTP1.1的请求消息和响应消息都应支持Host报头属性,他会标识着请求域名内的具体主机,且请求消息中如果没有Host报头属性会报告一个错误(400 Bad Request)

新增错误状态的响应码409,410

更具体化的像客户端反映了请求错误的信息;

如:

  • 409(Conflict)表示请求的资源与资源的当前状态发生冲突;

  • 410(Gone)表示服务器上的某个资源被永久性的删除。

节约带宽,断点续传功能range报头

  • HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了并且不支持断点续传功能;

  • .HTTP1.1则在请求头引入了range报头属性,它1.允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。2.可以实现多线程下载的断点续传

  • HTTP1.1使用时客户端时可以先发送一个只带Host报头属性的请求,如果服务器接收此请求并且回送响应码100客户端就可以继续发送带实体的完整请求了。原因如下:

100 (Continue) 状态代码的使用,允许客户端在发request消息body之前先用request header试探一下server,看server要不要接收request body,再决定要不要发request body。

缓存处理Cache-Control报头

有很多种! 简单了解Cache-Control:max-age=N这种: N是缓存有效期限多少秒
比如我们C端对S端两次请求同一张图片或者音频资源:

  1. 我们c端本地的缓存可能还没过期,直接使用;
  2. 过期了的话,发送请求给s端,s端检测资源是否变化; 变化返回状态码200,新的资源并且缓存C本地,没变化直接返回304状态码提醒c端延长他本地缓存的生命,并且直接使用;
  3. HTTP1.0和HTTP1.1和HTTP2.0的主要区别

HTTP1.1和2.0的区别

多路复用

HTTP2.0使用了多路复用的技术,做到同一个socket连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。(HTTP1.1也可以多建立几个TCP连接来支持处理更多并发的请求,但是创建TCP连接本身也是有开销的。)
HTTP1.0和HTTP1.1和HTTP2.0的主要区别

头部header数据压缩

HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对 header 的数据进行压缩,这样数据体积小了,在网络上传输就会更快。

在HTTP1.1中,HTTP请求和响应都是由状态行(首行)、请求/响应头部(header)、消息主体(body)三部分组成。
一般而言,消息主体body都会经过gzip压缩,或者本身传输的就是压缩过后的二进制文件但状态行和头部却没有经过任何压缩,直接以纯文本传输。
随着Web功能越来越复杂,每个页面产生的请求数也越来越多,导致消耗在头部的流量越来越多,尤其是每次都要传输User-Agent、Cookie这类不会频繁变动的报头字段,完全是一种浪费。

服务器推送server push

为了改善延迟,HTTP2.0引入了server push,它允许在浏览器明确地请求之前,服务端主动推送资源给浏览器,免得客户端再次创建连接发送请求到服务器端获取。这样C端可以直接从本地加载这些资源,不用再通过网络。

服务端推送是一种在C端请求之前S端主动发送数据的机制(注意和1.1的长链接的流水线模式C端连续push请求区分)。
网页使用了许多资源:HTML、样式表、脚本、图片等等。在HTTP1.1中S端要想发送这些资源给C端,那么每一个资源都得收到C端明确地请求。(比如html+css两份需要C端申请两次,S端才能依次全发过去); 这是一个很慢的过程。文章来源地址https://www.toymoban.com/news/detail-416026.html

到了这里,关于HTTP1.0和HTTP1.1和HTTP2.0的主要区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTP1.0、HTTP1.1、HTTP2.0 协议的特点

    HTTP(Hypertext Transfer Protocol)是一种用于在Web浏览器和Web服务器之间传输数据的协议。HTTP的版本有很多,其中比较常见的有 HTTP 1.0 、 HTTP 1.1 和 HTTP 2.0 ,它们有各自的特点。 HTTP 1.0 的特点: 1. 每个请求/响应需要建立新的TCP连接,并在完成后关闭连接,导致较高的延迟。 2. 每

    2024年02月05日
    浏览(46)
  • http1.1与http2.0

    通俗来讲,http就是计算机通过网络进行通信的规则,是一个基于 请求与响应 , 无状态的 , 应用层协议 。常用于 TCP/IP协议 传输数据。目前任何终端之间任何一种通信方式都必须按Http协议进行,否则无法连接。tcp(三次握手,四次挥手)。 请求与响应 :客户端请求、服务端

    2023年04月19日
    浏览(69)
  • 谈谈Http2-为什么nginx在http2下的表现远弱于http1.1

    本篇文章的灵感来源于不久前的一次压测,接口的TPS在100并发下不足500,且延时超过500MS,这个接口的性能远远低于我们的预期。 对应的接口是一个极为简单的接口,只做了两件事情: 从数据库中读取一条数据,做了一些简单的处理 进行一次HTTP调用 那么话不多说,开始从内

    2024年01月24日
    浏览(34)
  • HTTP1.1、HTTPS、HTTP2.0 、HTTP3.0

    优点: 整体方面:简单、灵活和易于扩展、应用广泛和跨平台 性能方面:长连接、管道网络传输解决请求队头阻塞(没有使用) 缺点: 安全方面:无状态、明文窃听、伪装、篡改 性能方面: Header未经压缩就发送,只能压缩body,头部冗长 每次发送相同的首部造成比较多的

    2024年02月16日
    浏览(37)
  • 说说 HTTP1.0/1.1/2.0 的区别?

    HTTP 协议的第二个版本,第一个在通讯中指定版本号的HTTP协议版本 HTTP 1.0  浏览器与服务器只保持短暂的连接,每次请求都需要与服务器建立一个 TCP 连接 服务器完成请求处理后立即断开 TCP 连接,服务器不跟踪每个客户也不记录过去的请求 简单来讲,每次与服务器交互,都

    2024年04月08日
    浏览(81)
  • Http1.0 、1.1、2.0、3.0的区别

    巨人的肩膀 3.1 HTTP 常见面试题 | 小林coding HTTP1.0与HTTP1.1 HTTP1.1在HTTP1.0上的改进: 使用长连接的方式改善了HTTP1.0中短连接造成的性能开销 支持管道网络传输,不必等到上一个的响应,就可以接着发送第二个请求,减少整体响应时间 HTTP1.1的缺点: HTTP报文中的头部信息未经压

    2024年02月01日
    浏览(41)
  • 详解HTTP1.0、1.1、2.0版本区别/优化

    1、HTTP 1.0 是一种无状态,无连接的应用层协议 规定浏览器和服务器保持短暂的链接。 浏览器每次请求都需要与服务器建立一个TCP连接,服务器处理完成以后立即断开TCP连接(短连接),服务器不跟踪也每个客户单,也不记录过去的请求(无状态)。 这种无状态性可以 借助

    2023年04月08日
    浏览(69)
  • HTTPS和HTTP的主要区别

    HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是用于在互联网上传输数据的两种协议。 HTTPS和HTTP主要区别 1.安全性不同 HTTP是明文传输协议,数据在传输过程中不加密。如果网站采用http协议,因为该协议不加密,极容易遭遇中间人攻击,用户的个人隐私和

    2024年02月12日
    浏览(44)
  • HTTP 1.0 和 HTTP 1.1 的主要区别

    HTTP 1.0和HTTP 1.1是两个不同版本的HTTP协议,它们之间有以下区别: 1. 持久连接:HTTP 1.0默认使用短连接,即每个请求/响应后都会关闭连接,而HTTP 1.1默认使用持久连接,在同一个连接上可以发送多个请求和响应。 2. 请求管道化:HTTP 1.1支持请求管道化,即在一个持久连接上可

    2024年02月03日
    浏览(34)
  • 深入了解ESP8266WIFI模块的工作原理及特点---AT指令详解---透传概念----TCP和UDP的特点与区别-嵌入式软件面试常问

    为什么要拿这个简单的模块来讲一下呢?因为根据本人最近嵌入式软件面试来看,对于我们嵌入式应届,面试官主要问我们简历上做过的项目,大多应届生应该都接触过ESP8266或者ESP32吧,他们经常会对我们使用过的模块进行深入的追问,我们很有必要将自己使用过的模块深入学

    2024年04月27日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包