iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >HTTP1.0和HTTP1.1和HTTP2.0的主要区别
  • 314
分享到

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

服务器网络http 2023-09-08 13:09:51 314人浏览 安东尼
摘要

目录 HTTP1.0和1.1的区别长,短连接keep-alive,流水线模式新增表示IP内某台主机的Host报头属性新增错误状态的响应码409,410节约带宽,断点续传功能range报头缓存处

目录


先上结论,面试常问,同时也是我们学习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.1和2.0的区别

多路复用

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

头部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://blog.csdn.net/wtl666_6/article/details/128697770

--结束END--

本文标题: HTTP1.0和HTTP1.1和HTTP2.0的主要区别

本文链接: https://www.lsjlt.com/news/400004.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HTTP1.0和HTTP1.1和HTTP2.0的主要区别
    目录 HTTP1.0和1.1的区别长,短连接keep-alive,流水线模式新增表示IP内某台主机的Host报头属性新增错误状态的响应码409,410节约带宽,断点续传功能range报头缓存处...
    99+
    2023-09-08
    服务器 网络 http
  • MyISAM和InnoDB的主要区别和应用场景
    主要区别: 1).MyISAM是非事务安全型的,而InnoDB是事务安全型的。 2).MyISAM锁的粒度是表级,而InnoDB支持行级锁定。 3).MyISAM支持全文类...
    99+
    2024-04-02
  • VB和VB.NET的主要区别有哪些
    这篇文章主要为大家展示了“VB和VB.NET的主要区别有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB和VB.NET的主要区别有哪些”这篇文章吧。VB和VB.NET的主要区别:虽然说VB...
    99+
    2023-06-17
  • html全称和主要标签的区别
    html 全称为超文本标记语言,主要标签包括:结构性标签定义文档结构、标题标签设置标题、段落标签表示文本段落、连接标签创建链接、列表标签创建列表、表格标签组织数据和表单标签允许用户交互。...
    99+
    2024-04-21
  • Java和PHP的主要区别有哪些
    今天小编给大家分享一下Java和PHP的主要区别有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。认识 JavaJava ...
    99+
    2023-06-27
  • Ubuntu和Windows有什么主要区别
    Ubuntu和Windows是两种不同操作系统,它们有以下主要区别: Ubuntu是基于Linux内核的开源操作系统,Window...
    99+
    2024-04-02
  • Zabbix社区版和企业版有哪些主要区别
    功能差异:Zabbix企业版相对于社区版拥有更多的高级功能和扩展功能,如自动发现、网络地图、企业级报表等。 支持与服务:Za...
    99+
    2024-04-02
  • Emacs Lisp和Common Lisp之间的主要区别是什么
    Emacs Lisp和Common Lisp是两种不同的Lisp方言,它们之间存在以下主要区别:1. 发展背景:Emacs Lisp...
    99+
    2023-09-27
    区别
  • Docker容器和虚拟机的主要区别有哪些
    Docker容器和虚拟机的主要区别包括: 资源利用率:虚拟机需要独立的操作系统,因此占用的资源较多,而Docker容器共享宿主机...
    99+
    2024-04-02
  • 云主机和虚拟主机的区别
    云主机和虚拟主机的区别:1、资源分配不同:云主机拥有整个服务器的资源分配,而虚拟主机的资源是共享的;2、扩展性不同:云主机支持弹性扩展,而虚拟主机不支持;3、环境搭建不同:云主机需要手动配置环境,而虚拟主机不需要;4、远程控制的有无:云主机...
    99+
    2024-04-02
  • c语言和python区别主要用来写什么
    c语言和python是两门截然不同的编程语言,它们在语法、设计理念、性能和应用领域方面都有显著差异。c语言是一种过程式语言,以其简洁、高效的特性而闻名,主要用于底层系统编程和性能要求较高...
    99+
    2024-03-14
    c语言 python linux操作系统 作用域 python程序 底层开发 标准库 魔兽世界
  • 云服务器和虚拟主机的区别和联系与区别
    云服务器和虚拟主机是两个常用的网站托管平台,它们都提供了虚拟化技术来支持企业或个人将数据存储在公共云中。这两个平台都包括了服务器、存储、网络和其他资源,以提供灵活、安全和可靠的基础设施。 云服务器提供了虚拟化的基础设施,允许企业或个人将服...
    99+
    2023-10-26
    区别 虚拟主机 服务器
  • 主机和云主机的区别是什么
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-15
  • 云服务器和主机的区别
    云服务器和主机是两个不同的概念。 云服务器(Cloud Server)是一种基于云计算模式的服务器,可以通过互联网访问,为用户提供在线服务,并提供了高可用性、快速部署和高可靠性等功能。 主机(Host)则是一种服务器,主要用于服务器租赁和...
    99+
    2023-10-26
    区别 主机 服务器
  • C语言和Python区别及其主要应用领域
    C语言和Python是两种不同的编程语言,虽然都是流行的编程语言,但它们在语法、特性以及应用领域等方面有很大的区别。本文将探讨C语言和Python的区别以及它们各自的主要应用领域,并提...
    99+
    2024-04-02
  • 云服务器和虚拟主机的区别和联系与区别在哪
    云服务器和虚拟主机都是互联网基础设施服务,它们的区别在于: 运行环境不同:云服务器通常支持多种操作系统,比如Windows、IOS、Android、Linux等,而虚拟主机则只提供一个操作系统。 管理方式不同:云服务器提供更加灵活的管理...
    99+
    2023-10-26
    区别 虚拟主机 服务器
  • 主机和云主机有哪些区别
    主机和云主机的区别有:1、配置升级效率不同,云主机的升级效率比主机快;2、业务上线时间不同,主机部署上线所需的时间要1到3天左右,云主机能在几分钟甚至几秒内部署上线;3、安全性不同,主机的安全通常是由物理措施和系统安全保障相结合,包括数据中...
    99+
    2024-04-02
  • 大数据和云计算之间的主要区别是什么
    1、目的不同 大数据是为了发掘信息价值,而云计算主要是通过互联网管理资源,提供相应的服务。 2、对象不同 大数据的对象是数据,云计算的对象是互联网资源以及应用等。 3、背景不同 大数据的出现在于用户和社会各行各...
    99+
    2023-10-29
    区别 数据
  • LinkedList和ArrayList的区别、Vector和ArrayList的区别
      LinkedList和ArrayList的区别  继承类和实现接口上来讲  他们都实现了List接口下的方法,他们都允许重复,允许null,并且有序的集合。  LinkedList实现了Deque接口。  底层实现上来讲  ArrayL...
    99+
    2023-06-02
  • 云主机和vps主机的区别是什么
    这篇文章主要讲解了“云主机和vps主机的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“云主机和vps主机的区别是什么”吧! 在云计算时代,云主机因为价格、安全性、以及它的...
    99+
    2023-06-07
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作