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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Http协议学习笔记1.0 1.1 2.0 3.0区别 -> 正文阅读

[网络协议]Http协议学习笔记1.0 1.1 2.0 3.0区别

Http1.0

1.只支持短连接:每次发送请求都需要进行三次握手。【性能差】

2.在请求头部中没有Host头域(用于存储域名):只有ip地址,无法区别虚拟主机(同一个服务器ip,可以通过端口号或者子网来进行虚拟主机的划分)。【跟不上网络发展】

3.不支持断点续传:比如一部2个小时的电影,上次下载了50%,下次想从50%那里接着下载,这在1.0里面是没办法的,只能从头开始下载,要么你全部下载完,要么从头开始下。

Http1.1

1.引入了更多的缓存策略:在Http1.0中主要使用header里的lf-Modified-Since,Expires来做为缓存是否过期的标记(服务端数据更改了和本地缓存不一致),Http1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, lf-None-Match等更多可供选择的缓存头来控制缓存策略。

2.请求头引入range头域(支持断点续传):它允许只请求资源的某个部分,即返回码206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。

3.Host头域:在Http1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。Http1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报400 Bad Request。

4.长连接支持:Http1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求(串行)和响应,减少了建立和关闭连接的消耗和延迟,在Http1.1中默认开启Connection: keep-alive,一定程度上弥补了Http1.0每次请求都要创建连接的缺点。【但是如果前面的请求卡住,由于串行的缘故,后面的请求都要等,这也是一种弊端

Http2.0

1.新的二进制格式(Binary Format):Http1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑Http2.0的协议解析决定采用二进制格式,实现方便且健壮。

2.多路复用(MultiPlexing):即连接共享,一个连接上可以有多个request,一个request对应一个id,每个连接的request可以随机的混杂在一起接收方可以根据request的id将request再归属到各自不同的服务端请求里面。【但是也有问题2.0知识解决了应用层request的阻塞。传输层还是基于TCP, TCP的可靠传输机制,还是会导致由于丢包重传造成的阻塞

3.header压缩: Http1.x的header带有大量信息,而且每次都要重复发送,Http2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小

4.服务端推送(server push): 同SPDY(Google开发的基于TCP的会话层协议,对HTTP的增强)一样,Http2.0也具有server push功能。


Http2.0的多路复用和Http1.1中的长连接复用有什么区别?
Http1.1 Pipeling解决方式为,若千个请求排队串行化单线程处理,后面的请求等待前面请求的返回才能获得执行机会,一旦有某请求超时等,后续请求只能被阻塞,毫无办法,也就是人们常说的线头阻塞(队头阻塞);

Http2.0多个请求可同时在一个连接上并行执行。某个请求任务耗时严重,不会影响到其它连接的正常执行。

Http3.0

基于google的QUIC协议,而quic协议是使用udp实现的减少了tcp三次握手时间,以及ts (安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性)握手时间

解决了http 2.0中前一个stream丢包导致后一个stream被阻塞的问题(TCP层的队头阻塞)优化了重传策略,重传包和原包的编号不同,降低后续重传计算的消耗

连接迁移,不再用tcp四元组确定一个连接,而是用一个64位随机数来确定这个连接更合适的流量控制
?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 22:11:44  更:2022-03-13 22:13:01 
 
开发: 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年11日历 -2024/11/26 6:25:16-

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