Module: HTTP2::Header

Defined in:
lib/http/2/huffman.rb,
lib/http/2/compressor.rb,
lib/http/2/huffman_statemachine.rb

Overview

Implementation of header compression for HTTP 2.0 (HPACK) format adapted to efficiently represent HTTP headers in the context of HTTP 2.0.

Defined Under Namespace

Classes: Compressor, Decompressor, EncodingContext, Huffman

Constant Summary collapse

HEADREP =

Header representation as defined by the spec.

{
  indexed:      { prefix: 7, pattern: 0x80 },
  incremental:  { prefix: 6, pattern: 0x40 },
  noindex:      { prefix: 4, pattern: 0x00 },
  neverindexed: { prefix: 4, pattern: 0x10 },
  changetablesize: { prefix: 5, pattern: 0x20 },
}.each_value(&:freeze).freeze
NAIVE =

Predefined options set for Compressor mew.org/~kazu/material/2014-hpack.pdf

{ index: :never,  huffman: :never   }.freeze
LINEAR =
{ index: :all,    huffman: :never   }.freeze
STATIC =
{ index: :static, huffman: :never   }.freeze
SHORTER =
{ index: :all,    huffman: :never   }.freeze
NAIVEH =
{ index: :never,  huffman: :always  }.freeze
LINEARH =
{ index: :all,    huffman: :always  }.freeze
STATICH =
{ index: :static, huffman: :always  }.freeze
SHORTERH =
{ index: :all,    huffman: :shorter }.freeze