什么是头部压缩?为什么要头部压缩?

  我们知道,http请求和响应都是由【状态行、请求/响应头部、消息主题】三部分组成的。 一般而言,消息主体都会经过gzip压缩,或者本身传输的就是压缩过后的二进制文件(如图片、音频等),但是状态行和头部多是没有经过任何压缩,而是直接以纯文本的方式进行传输的。

  然而,随着web功能越来越复杂,请求数量越来越多,随之而来的就是头部的流量越来越多,并且在建立初次链接之后的链接也要发送user-agent等信息,是在是一种浪费。

  因此,http2提出了对请求和响应的头部进行压缩,即不再只是压缩主题部分,这种压缩方式就是HAPCK --- 其设计简单而灵活。

  通过压缩,头部大小可以减少一半之多,如果后面重复发送请求,那么可能压缩后的头部大小只有原始大小的 1/10。

  

一些术语

Header Field(头部域): 一个名值对。 名字和值都是以八进制存在的。

Dynamic Table(动态表): 动态表是用于存放含有索引值的头部域的。 这个表示动态变化的而且针对于编码或者解码的内容的。

Static Table(静态表): 静态表只要用于存放含有索引值的频繁出现的头部域的。这个表是有序的、只读、可访问的而且在几乎所有的编码或者解码的内容中可以共享的。

Header List(头部列表):头部列表是头部域的有序集合一起被编码的而且可能含有重复头部域。一个完整的含有Http/2头部快的头部域就是一个头部列表。

Header Field Respresentation(头部域表示):一个头部域在编码后可以以一个字面值也可以是一个索引值。

Header Block(头部块):一个有序的头部域表示在被解码的时候就是一个完成头部列表。

  

http2.0之头部压缩的更多相关文章

  1. HTTP1.0,HTTP1.1,HTTP2.0的主要特征对比

    HTTP1.0 是一种无状态.无连接的应用层协议. HTTP1.0规定浏览器和服务器保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器处理完成后立即断开TCP连接(无连接),服务 ...

  2. HTTP2协议之HPACK--之头部压缩规范介绍

    接下来打算把HTTP2协议的头部压缩算法给翻译下,敬请等候. HPACK - Header Compression for HTTP/2 HPACK:HTTP/2头部压缩 概要说明 这个规范定义了HP ...

  3. HTTP2.0的二进制分帧

    1.帧的类型: 在二进制分帧的结构中,头部有8个字节(64Bit),其中有一个字节(8Bit)来标志帧的类型: HTTP2.0规定了如下帧类型: DATA: 用于传输HTTP消息体 HEADERS:用 ...

  4. HTTP2.0那些事

    1. HTTP2.0的前世 http2.0的前世是http1.0和http1.1这两兄弟.虽然之前仅仅只有两个版本,但这两个版本所包含的协议规范之庞大,足以让任何一个有经验的工程师为之头疼.http1 ...

  5. http2.0 相对于 http1.1的优势

    1.http2.0完全是多路复用的,只需一个连接就可实现并行 可以将不同的请求夹杂在一起,只需一个连接就能加载一个页面. 2.可以让服务器将响应主动推动到客户端缓存中 当浏览器请求一个网页时,服务器除 ...

  6. iOS性能之HTTP2.0

    在移动互联网领域蓬勃发展的今天,APP的性能也成为各大公司重点关注的方向,该系列文章主要针对iOS的性能的几个方面做一些研究. 什么是HTTP2.0? 网上很容易搜到关于HTTP2.0的概念的文章,这 ...

  7. TCP/IP、HTTP、HTTPS、HTTP2.0

    TCP/IP.HTTP.HTTPS.HTTP2.0 HTTP,全称超文本传输协议(HTTP,HyperText Transfer Protocol),是一个客户端和服务器端请求和应答的标准(TCP), ...

  8. https 加密、http2.0、keep-alive

    原文地址:https://ainyi.com/44 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议 ...

  9. Nginx http2.0

    109/110 HTTP2.0协议 优势必须使用TLS加密 传输数据量大幅减少 1:以二进制格式传输  2:标头压缩(header做压缩) 多路复用及相关功能 : 消息优先级 (比如样式表先渲染页面那 ...

随机推荐

  1. 47 On Interpersonal Relationship 关于人际关系

    47 On Interpersonal Relationship 关于人际关系 ①Since we are social beings, the quality of our lives depend ...

  2. SimpleAdapter 网络视图:带预览的图片浏览器

    MainActivity.java public class MainActivity extends Activity { GridView grid; ImageView imageView; i ...

  3. FIR IP

    (1)多通道系数处理 系数的格式 (1)       每组系数的长度必须一样长: (2)多组系数依次连接即可; 添加多组系数后会,FIR IP核在生成时会多出以下几个信号 .s_axis_config ...

  4. web.xml 404 500 配置

    web.xml <error-page> <error-code>404</error-code> <location>/error404.html&l ...

  5. 6) mvn archetype:create-from-project

    cd %old%mvn archetype:create-from-projectcd %old%/target/generated-sources/archetype mvn installcd % ...

  6. day06(Collection,List,ArrayList,LinkedList,iterator迭代器,增强for)

    Collection   接口    方法实现 boolean  add(Object o);//添加 boolean  remove(Object o);//移除 修改方法   让实现类自己去实现修 ...

  7. 《Android开发艺术探索》第11章 Android的线程和线程池

    第11章 Android的线程和线程池 11.1 主线程和子线程 (1)在Java中默认情况下一个进程只有一个线程,也就是主线程,其他线程都是子线程,也叫工作线程.Android中的主线程主要处理和界 ...

  8. hdu 2190 悼念512汶川大地震遇难同胞——重建希望小学

    题目 这道题拿到的时候拼凑了一会,感觉挺难的,然后博客说是:递推,我觉得递推其实就是找规律. 这是别人的思路:对于n米的长度,可以是由n-1长度加1而来,对于增加的1,只有三块1*1的砖一种铺法: 还 ...

  9. ACL授权实例

    上一篇关于ACL的文章中:位运算实现ACL授权与认证过程的原理解析,我们学习了通过位运算实现ACL授权与认证的原理核心,今天我们一起来看授权的实例. 实现的功能很简单:打开授权界面时,加载已授权信息. ...

  10. IFNULL函数

    MySQL函数里有一个很有用的函数IFNULL,它的形式是IFNULL(fieldA,fieldB),意义是当字段fieldA是NULL时取fieldB,不是NULL时取fieldA的值. 这个函数与 ...