HTTP/1.1、1.2、1.3详细信息和主要区别

HTTP(超文本传输协议)是一种用于传输超文本(例如网页)的应用层协议。HTTP/1.1 是当前最广泛使用的版本,而 HTTP/2 和 HTTP/3 是其后续版本,旨在提高性能和效率。以下是这些版本的详细信息和主要区别

HTTP/1.1

发布于 1997 年,HTTP/1.1 是对 HTTP/1.0 的改进,包含以下主要特性:

  1. 持久连接:默认情况下,连接保持打开状态,可以用于多个请求/响应对。这减少了每次请求都要重新建立连接的开销。
  2. 管道化:允许在同一个连接上发送多个请求,而不必等待前一个请求的响应,但浏览器对其支持有限。
  3. 缓存控制:引入了更复杂和灵活的缓存机制。
  4. 分块传输编码:支持在传输过程中分块数据,使得服务器可以开始发送响应,而不必知道总内容长度。

HTTP/2

发布于 2015 年,HTTP/2 对 HTTP/1.1 进行了显著改进,主要特性包括:

  1. 二进制分帧:将所有数据分解成二进制帧,帧可以并行传输,简化了协议解析。
  2. 多路复用:允许在单个连接上并行传输多个流,避免了 HTTP/1.1 中的队头阻塞问题。
  3. 头部压缩:使用 HPACK 算法对 HTTP 头部进行压缩,减少了冗余数据的传输。
  4. 服务器推送:服务器可以在客户端请求之前主动推送资源,提高页面加载速度。

HTTP/3

发布于 2020 年,HTTP/3 建立在 QUIC 协议之上,进一步提高了性能和安全性:

  1. 基于 QUIC 协议:使用 UDP 而不是 TCP,减少了连接建立和恢复的延迟。
  2. 改进的多路复用:消除了 HTTP/2 中 TCP 级别的队头阻塞问题,使得丢包影响更小。
  3. 集成的加密:QUIC 协议内置了 TLS 1.3,加快了安全连接的建立速度。
  4. 更快的连接建立:QUIC 的 0-RTT 连接建立机制,允许在初次握手时就发送数据。

总结

  • HTTP/1.1:持久连接和管道化,解决了基本的性能问题,但仍然存在队头阻塞。
  • HTTP/2:二进制分帧和多路复用,大幅提升性能,但仍然受限于 TCP 的队头阻塞。
  • HTTP/3:基于 QUIC,解决了队头阻塞问题,进一步优化了连接建立和数据传输效率。

这些协议版本的改进都是为了适应现代 Web 的需求,提高页面加载速度和传输效率。可以关注和应用 HTTP/2 和 HTTP/3 的特性,以便为用户提供更好的体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/876081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始创建vue3项目——包含项目初始化、element-plus、eslint、axios、router、pinia、echarts

项目启动 初始化vue3项目 这里建议先下载pnpm,下载速度更快,如果还没下载可以使用 npm install -g pnpm 如果遇到报错问题,如下 可以在命令行输入下面的指令以切换到淘宝镜像源 npm config set registry https://registry.npm.taobao.org…

2024最佳游戏引擎排行

游戏产业几十年来一直是一个大生意,而且发展势头迅猛。据估计,全球游戏市场在 2025 年每年将达到 5031.4 亿美元,2023 年为 3960 亿美元。 尽管如今有市面上有各种各样的解决方案,但游戏开发人员和管理者在选择适合他们需求的游戏…

kettle从入门到精通 第八十课 ETL之kettle kettle中的json对象字段写入postgresql中的json字段

场景:源数据库表为mysql的其中有json字段,通过kettle 查询出来 插入到目标数据库 postgresql中,对应的表中也有json字段。。但是报错,提示kettle查询出来是varchar的的字段,无法插入到目标数据库中。 1、创建测试表。 …

golang设置远程调试

1. 目标机器构建安装dlv https://github.com/go-delve/delve go build之后将编译号的dlv命令路径添加到PATH里 2. 目标机器下载源代码并且运行dlv dlv debug --headless --listen:2345 --api-version2 --accept-multiclient 3.本机添加go remote 4. 设置断点即可

Cesium高性能渲染海量矢量建筑

0、数据输入为类似Geojson的压缩文件和纹理图片,基于DrawCommand命令绘制; 1、自定义建筑几何,包括顶点、法线、纹理等; 2、自定义纹理贴图,包括按建筑高度贴图、mipmap多级纹理; 3、自定义批处理表&…

DVWA中命令执行漏洞细说

在攻击中,命令注入是比较常见的方式,今天我们细说在软件开发中如何避免命令执行漏洞 我们通过DVWA中不同的安全等级来细说命令执行漏洞 1、先调整DVWA的安全等级为Lower,调整等级在DVWA Security页面调整 2、在Command Injection页面输入127.0.0.1&…

AI在Facebook的应用:预见智能化社交的新前景

在数字化时代,社交媒体平台已成为我们生活的重要组成部分,而人工智能(AI)的快速发展正推动着这些平台向更智能、更个性化的方向发展。Facebook,作为全球最大的社交网络平台之一,正不断探索和应用AI技术&…

mysql面试(七)

前言 本章节列出了mysql在增删改查的时候,分别会涉及到哪些锁类型,又是如何交互的。 这个章节也是mysql面试基础系列的最后一章,后面准备更新redis数据类型和分布式锁相关问题。如果各位看官有什么问题的话,可以留言。 锁 之前…

【MySQL进阶之路 | 高级篇】MVCC三剑客:隐藏字段,Undo Log,ReadView

1. 再谈隔离级别 我们知道事务有四个隔离级别,可能存在三种并发问题: 在MySQL中,默认的隔离级别是可重复读,可以解决脏读和不可重复读的问题,如果仅从定义的角度来看,它并不能解决幻读问题。如果我们想要解…

2024年jupyter notebook如何复制单元格cell输出的图片

背景 之前使用jupyter notebook复制图片一直是正常,右键就行,可以找到复制图片或者另存为的选项。 但是最近重新安装了anaconda,发现jupyter notebook升级了,和原来的界面不一样了。 如果有一个图片,我们右键&#x…

【Linux】—管理、设置防火墙规则(firewalld详解)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

[OJ]平均串问题,存在超时问题未解决

众所周知,两个数a和b的平均数计算公式为(ab)/2。 实际上平均数也可以描述为:从较小的数依次遍历到较大的数,将遍历的数放入一个列表中,该列表的中心元素。例如:求 3和7的平均数,列表为{3,4,5,6,7}&#xff…

2024-06学习笔记

1.事务与数据库链接的占用 如果用Transactional注解,那在第一次与数据库交互的时候,就会打开数据库链接,再整个方法执行完,才会关闭数据库链接。 即使后边用的事务传播是required_new,那之前的事务也是被挂起,不会被…

静态路由学习笔记

1. 静态路由应用场景 (1)静态路由由网络管理员手动配置,配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。 (2)缺点是不能自动适应网络拓扑的变化,需要人工干预过多。…

day05 Router、vuex、axios

配置 router和vuex需要在创建vue项目的时候,开始的时候选择Manually select features,于是就可以在下一个创建配置讯问中选择router和vuex。 axios则需要执行命令行: npm install axios -S 之后再在需要发送请求的view导入即可。 router…

研发(RD)注意事项 / 复杂项目规划、控制方法 PERT 和 CPM

注:机翻,未校对,去掉了原文中广告。 What Is Research and Development (R&D)? 什么是研发(R&D)? Investopedia / Ellen Lindner Research and Development An ongoing effort to develop or impr…

springboot中使用knife4j访问接口文档的一系列问题

springboot中使用knife4j访问接口文档的一系列问题 1.个人介绍 🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的技术是JavaScript与Vue.目前正在往全栈方向前进, 如果我的博客给您带来了帮助欢迎您关注我,我将会持续不断的…

Hive3:Centos7环境部署Hive服务

一、安装说明 1、Hadoop集群情况 3台机器:4G2C、2G2C、2G2C 安装教程:Centos7环境安装Hadoop集群 2、安装MySQL,用于存储Hive的元数据 在102机器上安装MySQL 安装MySQL使用服务器的root账号 3、最后安装Hive 安装hive过程使用服务器的atgu…

【C++】选择结构案例-三目运算符

三目运算符语法格式: 布尔表达式?表达式1:表达式2 运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值 (三目运算符指的是?和:) 在这个三目运算符…