IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 2021-07-20 -> 正文阅读

[网络协议]2021-07-20

HTTP1.0、HTTP1.1、HTTP2.0 、HTTP3


HTTP简述

1、HTTP的发明是为了将超文本标记语言(HTML)文档传送到客户端的浏览器;
2、到了WEB2.0,页面开始变得复杂,页面上具有CSS和JavaScript来丰富页面展示,Ajax的出现,我们拥有了一种新的方式来获取服务器端的方法。上述放都是基于HTTP协议。
3、手机端的出现,页面变的越发复杂。人们开始对其进行优化。


HTTP1.0、HTTP2.0和HTTP3.0的区别

1、HTTP1.0和HTTP1.1的区别

1.1长连接

在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭的延迟;HTTP1.1默认开启长连接(keep-alive),弥补了上版本每次请求都要创建头的缺陷。

1.2节约宽带

HTTP1.0在接收到请求的时候会将整个对象发送过来,并不支持断点续传功能;
HTTP1.1支持只发送header信息,用户先将头部信息发送给服务器,如果客户端认为用户有访问权限就会将100发回给用户。用户再将body信息发送给客户端。如果返回401,就终止。

1.3Host域

HTTP1.0不存在域,在HTTP1.0 中认为每一个服务器都有一个唯一的IP地址,所以传送的信息并没有主机的名字(hostname)。在HTTP1.1 的请求消息和响应消息都支持host域,且如果请求消息中没有host域会返回400 bad reques。

1.4缓存处理和错误通知管理

HTTP1.1比HTTP1.0有更多的缓存策略。HTTP1.1中新增了24个错误状态相应码。

2、HTTP1.1和HTTP2.0的区别

HTTP2 采用二进制格式传输数据,而非 HTTP 1.x 的文本格式,二进制协议解析起来更高效。HTTP /1 的请求和响应报文,都是由起始行,首部和实体正文(可选)组成,各部分之间以文本换行符分隔。HTTP/2 将请求和响应数据分割为更小的帧,并且它们采用二进制编码。

2.1多路复用

可以做到一个连接并发处理多个请求,并且并发数量比HTTP1.0高出好几个数量级。
在这里插入图片描述

2.2头部数据压缩

HTTP由三部分组成:状态行、请求/响应头部、消息主体。
HTTP只对消息主体进行压缩。状态行和请求都以纯文本的方式进行发送。
随着页面请求的变多header信息也开始占用大量资源。特别是useragent和Cookie这类不会频繁变动的内容。HTTP2.0使用HPACK算法对header进行压缩。

2.3服务器推送

服务端推送是一种在客户端请求之前发送数据的机制。网页使用了许多资源:HTML、样式表、脚本、图片等等。在HTTP1.1中这些资源每一个都必须明确地请求。这是一个很慢的过程。浏览器从获取HTML开始,然后在它解析和评估页面的时候,增量地获取更多的资源。因为服务器必须等待浏览器做每一个请求,网络经常是空闲的和未充分使用的。

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

在这里插入图片描述


3、HTTP3.0和HTTP2.0的区别

一个基于 UDP 协议的 QUIC 协议,并且使用在了 HTTP/3 上,HTTP/3 之前名为 HTTP-over-QUIC,
简单来说就是缓存当前会话的上下文,类似于TCP快速打开技术。

3.10RTT 建连可以说是 QUIC 相比 HTTP2 最大的性能优势

1、传输层0RTT就能建立连接
2、加密层0RTT就能建立加密连接
TLS的 ”zero roundtrip” 仅指的是 TLS握手过程:为了能够交换TLS数据,客户端和服务器仍然需要首先建立TCP连接。
在这里插入图片描述
另外,QUIC更近一步可以允许客户机在连接的第一个往返过程中发送applicationdata,不需涉及到其他的handshake。
在这里插入图片描述毕竟,QUIC通过将connection’shandshake和cryptographic graphic合拼为一个handshake,已经缩短了典型连接握手的完整往返行程。在此减少了握手的额外roundtrip,QUIC即可建立实际的 0-RTT连接

3.2多路复用

HTTP2虽然支持多路复用,但是HTTP协议中始终没有这个功能,QUIC原生就实现了这个功能,并且单个数据流可以保证有序交付且不会影响到其他数据流。
同HTTP2.0一样,同一条 QUIC连接上可以创建多个stream,来发送多个HTTP请求,但是,QUIC是基于UDP的,一个连接上的多个stream之间没有依赖。比如下图中stream2丢了一个UDP包,不会影响后面跟着 Stream3 和 Stream4,不存在 TCP 队头阻塞。虽然stream2的那个包需要重新传,但是stream3、stream4的包无需等待,就可以发给用户。
另外QUIC 在移动端的表现也会比 TCP 好。因为 TCP 是基于 IP 和端口去识别连接的,这种方式在多变的移动端网络环境下是很脆弱的。但是 QUIC 是通过 ID 的方式去识别一个连接,不管你网络环境如何变化,只要 ID 不变,就能迅速重连上。

3.3加密认证报文

TCP协议知识加密了body并没有对head进行加密,这很容易导致中间网络设备被篡改、注入、监听。
但是 QUIC 的 packet 可以说是武装到了牙齿。除了个别报文比如 PUBLIC_RESET 和 CHLO,所有报文头部都是经过认证的,报文 Body 都是经过加密的。

3.4 向前纠错机制

QUIC协议有一个非常独特的特性,称为向前纠错 (Forward Error Correction,FEC),每个数据包除了它本身的内容之外,还包括了部分其他数据包的数据,因此少量的丢包可以通过其他包的冗余数据直接组装而无需重传。向前纠错牺牲了每个数据包可以发送数据的上限,但是减少了因为丢包导致的数据重传,因为数据重传将会消耗更多的时间(包括确认数据包丢失、请求重传、等待新数据包等步骤的时间消耗)。

总结

HTTP1.x 有连接无法重复使用、队头堵塞、协议开销大和安全因素等诸多缺陷(TCP)。
HTTP2 通过二进制流、多路复用、header压缩等技术大大提高了性能(TCP)。
HTTP3是基于UDP实现的,该协议基于UDP又吸取了TCP的精华,实现了快又可靠的协议。

参考

原文链接:https://blog.csdn.net/ailunlee/article/details/97831912
原文链接:https://baijiahao.baidu.com/s?id=1627163778419611487&wfr=spider&for=pc
原文链接:https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/103692405

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:35:20  更:2021-07-22 14:37:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 12:14:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码