HTTP2协议主要改进点
1、改成二进制协议,每次传输二进制帧,帧有以下几个字段
类型type,长度length,flag,StringID流标志,Payload负载,最基础的两种类型HEAD类型和DATA类型
2、多路复用,可以在一个连接上,同时传输多个数据流,每个流的传输顺序是固定的,按先后到达拼接
3、支持优先级,通过权重
4、支持重置中断,在HTTP/1.1中,如果一个请求发出去了,在没有发送完的情况下,是不好取消的,只能断开这次的TCP连接,但是断开重连有有点费时,HTTP2可以发送一个RST_STREAM帧,表示取消这次请求传输,后面重新开始传
5、头部压缩,大部分的请求头部都是相似的,尤其类似cookie这些信息,有时候占比很重,可以压缩
6、支持服务端推送,服务端在响应客服端请求A资源时,预估可能马上也会用到B资源,服务端可以把B资源发送给客户端,当然前提是客户端显示的告知服务端,客户端允许这种推送,并且最终客户端有决定权是否接受,如果不接受,可以发送一个RST_STREAM帧取消
7、支持流量控制,支持客户端和服务端沟通彼此的数据窗口大小
文章同步发布: https://www.geek-share.com/detail/2780659759.html
HTTP2协议主要改进点的更多相关文章
- nginx支持http2协议
1.http2协议 HTTP 2.0 的主要目标是改进传输性能,实现低延迟和高吞吐量.从另一方面看,HTTP 的高层协议语义并不会因为这次版本升级而受影响.所有HTTP 首部.值,以及它们的使用场景都 ...
- HTTP2协议之HPACK--之头部压缩规范介绍
接下来打算把HTTP2协议的头部压缩算法给翻译下,敬请等候. HPACK - Header Compression for HTTP/2 HPACK:HTTP/2头部压缩 概要说明 这个规范定义了HP ...
- Http2协议简介
1.概述 和http1兼容.HTTP/2 没有改动 HTTP 的应用语义. HTTP 方法.状态代码.URI 和标头字段等核心概念一如往常. 不过,HTTP/2 修改了数据格式化(分帧)以及在客户端与 ...
- 基于奇林软件kylinTOP工具的HTTP2协议的压力测试
1.HTTP协议概述 说到http,那就应该先了解一下http协议的发展历史.关于http协议的历史,可以参考阮一峰老师的这篇博客文章HTTP 协议入门,里面介绍的比较详细了.简单来说http先后存在 ...
- 老猿学5G扫盲贴:推荐三篇介绍HTTP2协议相关的文章
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 5G中的服务化接口调用都是基于HTTP2协议的,老 ...
- 轻松让你的nginx服务器支持HTTP2协议
目录 简介 HTTP1.1和HTTP2 安装最新的nginx 开启HTTP2支持 添加SSL支持 修改加密算法 Diffie–Hellman对消息进行加密 重定向所有的HTTP请求到HTTPS 启动n ...
- http2协议翻译(转)
超文本传输协议版本 2 IETF HTTP2草案(draft-ietf-httpbis-http2-13) 摘要 本规范描述了一种优化的超文本传输协议(HTTP).HTTP/2通过引进报头字段压缩以及 ...
- STP-1-802.1D生成树协议及改进
第一个 IEEE 标准化的STP也常称为“ 传统”STP,最初在802. 1D中进行了描述. 之后得到了改进,发布在所谓的修正案中:快速 STP( RSTP),在修正案802. 1w 中描述了它的标准 ...
- Java9系列第九篇-对HTTP2协议的支持与非阻塞HTTP-API
在HTTP/1.1 发布了16 年之后,IETF在2015年终于通过了HTTP/2 协议.HTTP/2协议旨在降低延迟,满足当今时代对于信息响应时间的要求.在这篇文章中,我会简要的对HTTP/2协议进 ...
随机推荐
- Spark安装(standalone)
文档:http://spark.apache.org/docs/latest/spark-standalone.html 安装scalahttps://www.scala-lang.org/downl ...
- CgLib实现AOP
一.CgLib实现动态代理的例子 1.创建Person类 package com.example.cglib; public class Person { public void study(){ S ...
- AdaptIS: Adaptive Instance Selection Network
AdaptIS: Adaptive Instance Selection Network 2019-09-19 12:58:07 Paper: https://arxiv.org/pdf/1909.0 ...
- cnetos7 搭建wordpress(apache+php+mariadb)
.安装apache.php.php库 yum -y install httpd php php-mbstring php-pear 2.修改php配置文件地区 vim /etc/php.ini 在87 ...
- 生成Nginx服务器SSL证书和客户端证书
Nginx服务器SSL证书 生成pass key 下面的命令用于生成一个2048bit的pass key, -passout pass:111111 用于避免交互式输入密码 [tomcat@a02 t ...
- linux系统上传下载命令rz和sz的教程
(一)安装方法汇总(注意:一下命令如果没有权限的需要在每个命令前面加一个sudo) 1.安装方法(推荐) sudo yum install lrzsz 2.在安装Linux系统时选中“DialupNe ...
- node端代理浏览器路由 解决浏览器跨域问题
var _ = require('lodash'); var request = require("request"); /* @LM 2017-02-16 node端代理浏览器路 ...
- [LeetCode] 680. Valid Palindrome II 验证回文字符串 II
Given a non-empty string s, you may delete at most one character. Judge whether you can make it a pa ...
- GroupBy之后加ToList和不加ToList有什么区别吗?
class Program { static void Main(string[] args) { List<Person> ...
- Prometheus入门到放弃(7)之redis_exporter部署
redis监控,prometheus需要使用redis_exporter客户端. 这里我们采用docker方式部署,既可以部署在redis所在服务器,也可以部署在其他机器: docker镜像地址:ht ...