欢迎大家来到IT世界,在知识的湖畔探索吧!
HTTP是超文本传输协议的缩写,它是几乎所有网络应用的基础。更具体地说,HTTP是计算机和服务器用来请求和发送信息的方法。例如,当有人在其笔记本电脑上浏览头条网页时,他们的网络浏览器会向头条服务器发送HTTP请求,以获取页面上出现的内容。然后,头条服务器发送HTTP响应,其中包括浏览器向用户显示的文本、图像和格式化。
HTTP的第一个可用版本创建于1997年。因为它经历了几个阶段的发展,所以这第一个版本的HTTP被称为HTTP/1.1。这个版本仍然在网络上使用。在2015年,一个名为HTTP/2的新版本被创建。
HTTP/2解决了HTTP/1.1的创造者们没有预料到的几个问题。特别是,HTTP/2比HTTP/1.1更快、更有效。HTTP/2更快的方式之一是它在加载过程中如何对内容进行优先排序。
什么是优先级?
在网络性能的背景下,优先级是指加载内容的顺序。假设一个用户访问了一个新闻网站并浏览了一篇文章。文章顶部的照片应该先加载吗?应该先加载文章的文字吗?横幅广告是否应该先加载?
优先顺序会影响网页的加载时间。例如,某些资源,如大型的JavaScript文件,如果必须先加载,可能会阻碍页面其他部分的加载。如果这些阻挡渲染的资源最后加载,则可以一次加载更多的页面。
此外,这些页面资源的加载顺序会影响用户对页面加载时间的感知。如果只有幕后内容(如CSS文件)或用户不能立即看到的内容(如页面底部的横幅广告)先加载,用户会认为页面根本就没有在加载。如果对用户最重要的内容先加载,如页面顶部的图片,那么用户会认为页面加载得更快。
HTTP2中的优先级是如何影响性能的?
在HTTP/2中,开发人员可以亲手详细控制优先级。这使他们能够最大限度地提高感知和实际的页面加载速度,这在HTTP/1.1中是不可能的。
HTTP/2提供了一个叫做加权优先级的功能。这使开发人员能够决定哪些页面资源将在每一次都被优先加载。在HTTP/2中,当客户端对网页提出请求时,服务器会一次性向客户端发送几条数据流,而不是一个接一个地发送东西。这种数据传输方法被称为多路复用。开发人员可以给这些数据流中的每一个分配一个不同的加权值,而这个值会告诉客户端应该先渲染哪个数据流。
想象一下,美美想读她的朋友小明写的小说,但美美和小明都只通过普通邮件进行交流。美美给小明寄了一封信,并要求小明把他的小说寄给她。小明决定以HTTP/1.1方式发送小说。他每次邮寄一章,只有在收到美美的回信,确认她收到前一章后,他才会邮寄下一章。使用这种内容传递的方法,美美需要很多个星期来阅读小明的小说。
现在想象一下,小明决定以HTTP/2方式向美美发送他的小说。在这种情况下,他分别发送小说的每一章(以保持在邮政服务的大小限制之内),但都是在同一时间发送。他还为每一章编号。第一章,第二章,等等。现在,美美一下子就收到了小说,并且可以在她自己的时间内按照正确的顺序进行组合。如果少了一章,她可能会快速回复,询问那一章的内容,但除此之外,这个过程已经完成,美美可以在短短几天内读完这部小说。
在HTTP/2中,数据是一次性发送的,就像小明向美美一次性发送多个章节时一样。而且,就像小明一样,在HTTP/2中,开发者可以对章节进行编号。他们可以决定是先加载网页的文本,还是先加载CSS文件,还是先加载JavaScript,或者是他们认为对用户体验最重要的东西。
HTTP/2和HTTP/1.1之间还有哪些影响性能的区别?
多重化:HTTP/1.1是一个接一个地加载资源,所以如果一个资源不能被加载,就会阻塞后面所有的其他资源。相比之下,HTTP/2能够使用单一的TCP连接来同时发送多个数据流,因此没有一个资源会阻塞其他资源。HTTP/2通过将数据分割成二进制代码信息,并对这些信息进行编号,使客户端知道每个二进制信息属于哪个流。
服务器推送:通常情况下,服务器只在客户端要求的情况下向客户端设备提供内容。然而,这种方法对于现代网页来说并不总是实用的,因为这些网页往往涉及到几十个独立的资源,客户必须请求。HTTP/2解决了这个问题,它允许服务器在客户要求之前向客户 “推送 “内容。服务器也会发送一条消息,让客户端知道应该期待哪些推送的内容–就像鲍勃在发送整部小说之前给爱丽丝发送了一份目录。
文件头压缩:小文件比大文件的加载速度更快。为了加快网络性能,HTTP/1.1和HTTP/2都对HTTP消息进行压缩,使其更小。然而,HTTP/2使用了一种更先进的压缩方法,称为HPACK,消除了HTTP头包中的冗余信息。这从每个HTTP数据包中消除了几个字节。鉴于加载一个网页所涉及的HTTP数据包的数量,这些字节迅速增加,导致更快的加载。
什么是HTTP/3?面向未来?
HTTP/3是HTTP协议的下一个建议版本。HTTP/3在网络上还没有被广泛采用,但它的使用正在增长。HTTP/3和以前版本的协议之间的关键区别是,HTTP/3通过QUIC而不是TCP运行。QUIC是一个更快和更安全的传输层协议,是为现代互联网的需求而设计的。点赞超过50个,下次我们花更多地时间跟你通俗的讲清楚什么是TCP,什么是QUIC。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/98643.html