zoukankan      html  css  js  c++  java
  • HTTP2.0——头部压缩

    先凉出常见术语

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

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

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

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

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

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

    头部压缩需要在支持 HTTP/2 的浏览器和服务端之间:

    • 维护一份相同的静态字典(Static Table),包含常见的头部名称,以及特别常见的头部名称与值的组合;
    • 维护一份相同的动态字典(Dynamic Table),可以动态地添加内容;
    • 支持基于静态哈夫曼码表的哈夫曼编码(Huffman Coding);

    静态字典的作用有两个

    1)对于完全匹配的头部键值对,例如 :method: GET,可以直接使用一个字符表示;

    2)对于头部名称可以匹配的键值对,例如 cookie: xxxxxxx,可以将名称使用一个字符表示。

  • 相关阅读:
    宏------进阶

    公司用中会用到的iOS开源库和第三方组件(不断更新...)
    iOS 开发者旅途中的指南针
    国际化
    Block
    git简单使用教程
    XCode自带解析SAX解析
    GDataXMLNode解析XML
    Predicate
  • 原文地址:https://www.cnblogs.com/jiox/p/14535516.html
Copyright © 2011-2022 走看看