HTTP/2.0协议详解_http 2.0-程序员宅基地

技术标签: 多路复用  运维相关  开发周边  http  网络协议  http2.0  

前言

HTTP/2.0:互联网通信的革新标准
随着互联网技术的飞速发展,HTTP协议作为互联网应用最广泛的通信协议,也在不断演进和优化。HTTP/2.0是HTTP协议的最新版本,它旨在提供更高效、更安全、更快速的互联网连接。

在这里插入图片描述

一、HTTP/2.0的优势

  • 性能提升 :HTTP/2.0采用了二进制传输数据,而非之前的文本格式,大大提高了传输效率。同时,它还引入了流控制和帧压缩等机制,进一步提升了数据传输的性能。
  • 更好的并发性 :HTTP/2.0支持并发请求,这意味着服务器可以同时处理多个请求,提高了应用的响应速度和效率。
  • 安全性增强 :HTTP/2.0采用了TLS 1.2或更高版本的加密协议,提供了更强的安全性保护,有效防止了中间人攻击。

在这里插入图片描述

二、HTTP/2.0的主要特性

  • 二进制协议 :HTTP/2.0采用了二进制格式,而非文本格式,有效地减少了数据传输量。同时,二进制格式也不易出错,提高了数据传输的可靠性。
  • 帧(Frame) :HTTP/2.0将数据传输划分为小的帧,每个帧都包含帧头和帧载荷。帧头包含帧类型、流标识符和优先级等信息。
  • 流(Stream) :HTTP/2.0中的流是双向的通信通道,可以用于请求和响应数据的传输。每个流都有一个唯一的标识符,可以用于区分不同的数据流。
  • 消息(Message) :HTTP/2.0中的消息是由一个或多个帧组成的逻辑单元,可以是一个请求或响应。
  • 头消息压缩(Header Compression) :HTTP/2.0采用了头压缩技术,通过使用字典来压缩请求和响应头信息,从而减少数据传输量。
  • 多路复用(Multiplexing) :HTTP/2.0支持多个请求和响应在同一个连接上同时进行,这称为多路复用。通过使用不同的流标识符,可以区分不同的数据流。
  • 服务器推送(Server Push) :HTTP/2.0引入了服务器推送机制,服务器可以在客户端请求之前主动向客户端推送数据。这可以提高客户端的响应速度。
  • 流量控制(Flow Control) :HTTP/2.0引入了流量控制机制,以防止客户端或服务器端接收数据过快而无法处理的情况。通过使用流控制窗口和流控制令牌等机制,可以实现流量控制。
    这些新定义和术语是HTTP/2.0协议的重要组成部分,有助于实现更高效、更快速和更安全的Web通信。

在这里插入图片描述

三、HTTP/2.0的应用场景

  • 网页浏览 :HTTP/2.0可以显著提高网页的加载速度和响应性能,使用户能够更快地浏览网页内容。
  • 移动应用 :移动设备通常具有有限的网络资源和处理能力,而HTTP/2.0的高效性和并发性可以在移动应用中发挥出更大的优势。
  • 云服务 :云服务通常需要处理大量的网络请求,而HTTP/2.0的高效性和并发性可以有效地提高云服务的性能和响应速度。
  • 实时通信:实时通信应用需要快速地传输大量数据,而HTTP/2.0可以提供更快的传输速度和更好的并发性,适用于实时通信应用。

总之,HTTP/2.0作为互联网通信的革新标准,具有显著的性能优势和更好的并发性,为互联网应用提供了更快、更安全、更高效的连接方式。随着越来越多的应用开始采用HTTP/2.0协议,我们可以预见其在未来的互联网发展中将发挥越来越重要的作用。

在这里插入图片描述

四、HTTP 1.1的区别

HTTP/2.0与HTTP 1.1相比,主要区别体现在以下几个方面:

  • 传输格式 :HTTP/2.0采用了二进制格式传输数据,而HTTP 1.1使用的是文本格式。二进制格式在协议的解析和优化扩展上带来了更多的优势和可能。
  • 并发处理 :HTTP/2.0支持并发请求,即服务器可以同时处理多个请求,这使得应用能够更高效地利用网络资源。相比之下,HTTP 1.1是顺序且阻塞的,即每个请求都需要等待前一个请求完成后才能处理,这在一定程度上限制了并发处理的能力。
  • 消息头压缩 :HTTP/2.0采用了头消息压缩机制,能够节省消息头占用的网络流量。而在HTTP 1.1中,每次请求都需要携带大量的冗余头信息,这会浪费不少带宽资源。
  • 服务器推送 :HTTP/2.0引入了服务器推送(Server Push)机制,这意味着服务器可以在客户端请求之前,主动向客户端推送数据。这有效地减少了客户端的等待时间,提高了应用的响应速度。
  • 与HTTP 1.1的兼容性 :HTTP/2.0保持了与HTTP 1.1语义的向后兼容性,这意味着现有的使用HTTP 1.1的应用程序可以无需任何修改就能与HTTP/2.0进行通信。
    总的来说,HTTP/2.0在多个方面相对于HTTP 1.1有了显著的提升,极大地提高了web性能,同时向下兼容HTTP1.X协议版本。

在这里插入图片描述

五、当前浏览器对HTTP/2.0的适配

当前大部分现代浏览器已经对HTTP/2.0协议进行了适配。例如,Chrome、Opera、Firefox、IE11、Edge等都支持HTTP/2.0协议。服务器方面也有多种选择,包括Nginx、H2O等。
需要注意的是,要使用HTTP/2.0协议,需要将网站升级为HTTPS,因为当前所有支持HTTP/2.0的浏览器都要求必须基于TLS部署。这样做不仅可以提高安全性,还可以利用TLS的加密机制更好地穿透网络中间节点。
总的来说,HTTP/2.0在多个方面相对于HTTP 1.1有了显著的提升,极大地提高了web性能,同时向下兼容HTTP1.X协议版本。

在这里插入图片描述

六、Java中如何使用HTTP/2.0

Java中可以使用HttpURLConnection类来使用HTTP/2.0协议。
首先,需要将HTTPS连接升级为HTTP/2.0连接。这可以通过在创建HttpURLConnection对象时指定使用HTTP/2.0协议来完成。例如:


URL url = new URL("https://example.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Connection", "Upgrade");
conn.setRequestProperty("Upgrade", "h2c");

在上面的代码中,我们通过设置请求头信息"Connection"和"Upgrade"来告诉服务器我们希望升级到HTTP/2.0协议。然后,我们设置请求头信息"Upgrade"为"h2c",以告诉服务器我们希望使用HTTP/2.0协议进行通信。
一旦连接升级为HTTP/2.0协议,就可以使用HttpURLConnection类进行正常的HTTP请求了。例如:


BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
    
    System.out.println(line);
}
reader.close();

在上面的代码中,我们通过调用HttpURLConnection对象的getInputStream()方法来获取服务器的响应,并将其读取到一个BufferedReader对象中。然后,我们逐行读取响应内容并输出到控制台。
需要注意的是,在使用HTTP/2.0协议时,需要确保服务器已经支持HTTP/2.0协议,否则连接将无法升级为HTTP/2.0协议。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhangzehai2234/article/details/134410811

智能推荐

VS中添加lIb库及头文件(外部依赖项)的步骤_vs项目中依赖库的头文件-程序员宅基地

文章浏览阅读4.5k次。VS中添加LIb库及头文件(外部依赖项)的步骤:1、添加工程的头文件目录:工程—属性—配置属性—c/c+±–常规—附加包含目录:加上头文件存放目录。2、添加文件引用的lib静态库路径:工程—属性—配置属性—链接器—常规—附加库目录:加上lib文件存放目录。然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名。3、添加工程引用..._vs项目中依赖库的头文件

互动抽奖背后的随机性与算法实现-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏7次。背景抽奖,是一种典型的互动玩法形式。无论是大V的粉丝抽奖,还是活动会场的参与抽奖,这种起源于彩票开奖的互动玩法,同时兼顾了高期待感和低预期的特征,让活动在成本控制之余又能有惊喜和引爆点,这样的优势让其在各种运营场景中幻化万千,大行其道。在闲鱼各种互动场与营销活动中,抽奖自然也是一个相当高频使用的互动玩法。众所周知,越是经典的玩法,业务需求就越发别出机杼,在参与条件、开奖展示、奖品规则等各方面千变万..._随机中奖逻辑

HSV颜色相似度-程序员宅基地

文章浏览阅读1.1w次,点赞2次,收藏8次。一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。H: 0 — 180S: 0 — 255V: 0 — 255此处把部分红色归为紫色范围:目前在计算机视觉领域存在着_hsv颜色相似度

cox回归模型python实现_生存分析Cox回归模型(比例风险模型)的spss操作实例-程序员宅基地

文章浏览阅读1.7k次。一、生存分析基本概念1、事件(Event)指研究中规定的生存研究的终点,在研究开始之前就已经制定好。根据研究性质的不同,事件可以是患者的死亡、疾病的复发、仪器的故障,也可以是下岗工人的再就业等等。2、生存时间(Survival time)指从某一起点到事件发生所经过的时间。生存是一个广义的概念,不仅仅指医学中的存活,也可以是机器出故障前的正常运行时间,或者下岗工人再就业前的待业时间等等。有的时候甚..._cox比例风险回归模型spss

git commit --amend_git commit --amend 之后还要push吗-程序员宅基地

文章浏览阅读144次。使用场景用于修改上次提交,可修改上次提交的commit message信息,也可修改commit 的内容用法上次commit 内容不满意,代码并未合并,需要有改动的地方:修改文件git addgit commit – amendgit push以上修改并不产生新的commit id但是如果修改文件git addgit commit “”git push此办法会产生新的commit id,合并的人需要将两次commit id合并..._git commit --amend 之后还要push吗

九度OJ-程序员宅基地

文章浏览阅读891次。1.1016这是一道简单题,主要要考虑到,比如说108,8,2这种类似的情况,其中8被认为是08,所以最后两位相同,输出-1。#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){char a[20], b[20], *p, *q;int k, a1, b1, len1, len2, a2, b2;while (scanf("%s%s%d", a, b, &a..._九度oj

随便推点

HTML5基于flash实现播放RTMP协议视频_网页使用flash播放rtsp-程序员宅基地

文章浏览阅读3.1w次,点赞6次,收藏28次。HTML5实现播放RTMP协议视频<!doctype html><html><head><meta charset="utf-8"><title>Video.js 7</title> <link href="css/video-js.min.css" rel="stylesheet"> <sty..._网页使用flash播放rtsp

Error opening data file Tesseract-OCR\tessdata/eng.traineddata问题 解决_error opening data file ./eng.traineddata-程序员宅基地

文章浏览阅读1.2w次,点赞23次,收藏19次。在安装完tesseract, pytesseract后执行测试命令,发现打印如下错误:Error opening data file \Program Files (x86)\Tesseract-OCR\tessdata/eng.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to the..._error opening data file ./eng.traineddata

杂项总结 vue sass less vue-router_vue使用less还是sass好-程序员宅基地

文章浏览阅读92次。// 通用修饰符 // stop 实现阻止冒泡的修饰符// prevent 实现阻止默认行为的修饰符// once 表示单次触发的修饰符// self 表示绑定事件的元素与触发事件的元素是同一个元素// 鼠标修饰符// left 鼠标点击左键// right 鼠标点击右键// middle 鼠标中间件// 辅助修饰符// ctrl 点击 ctrl 辅助键// shift 点击 shift 辅助键盘// alt 点击 alt 辅助键// meta_vue使用less还是sass好

html5 accept encoding,html - How to Specify a Vary: Accept-Encoding header? - Stack Overflow-程序员宅基地

文章浏览阅读79次。I found a helpful post to speed up wordpress website or blog https://www.keycdn.com/blog/speed-up-wordpress/With some other optimizations, I am also using below code on my site in .htaccess file (usua..._html5设置accept-encoding

在docker容器内 获取swarm节点IP_docker swarm 指定容器ip-程序员宅基地

文章浏览阅读566次。想在应用内获取当前swarm节点的IP使用.net 6框架 vs2022开发工具。_docker swarm 指定容器ip

国产的文档开发控件,spire.office新版本,一起来看看~_spire.office developer subscription(开发版本)-程序员宅基地

文章浏览阅读922次。Spire.Office 8.6.0更新已发布。在该版本中,Spire.PDF支持转换多页PDF文档为单个SVG文件;Spire.XLS新增了优化删除行的速度的方法;Spire.Presentation支持为TextFrame设置栏数。此外,许多已知问题也在该版本中被成功修复。_spire.office developer subscription(开发版本)

推荐文章

热门文章

相关标签