HTTP Header Encoding Using Shared Index Tables Across Connections

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data compression methods for HTTP headers, such as SPDY's use of the Deflate algorithm, suffer from poor speed performance and high memory consumption, especially when handling multiple connections, due to the large size of serialized binary representations and the need for dedicated memory for each connection.

Innovation Solution

A method that indexes HTTP headers prior to compression, grouping indexes and literal values to create an encoded bitstream, allowing for faster redundancy search and reduced memory usage, and includes features like delta encoding and indexing flags to manage memory efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the Deflate algorithm is used to compress HTTP headers, then compression performance is achieved, but processing speed becomes poor

Engineering Contradiction:
Improvecompressed data sizeVSAvoidprocessing speed
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments the compression process into two distinct phases: an indexing phase that creates a reference table of common header values, and a compression phase that uses this table to quickly encode headers. This segmentation allows the system to achieve both good compression ratios and high processing speeds by pre-processing common patterns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary indexing of HTTP header values before actual compression occurs. By pre-building an index table containing common header patterns and their encodings, the system prepares compression data in advance, enabling rapid compression of subsequent headers without repeated analysis.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If the Deflate algorithm is used to compress HTTP headers, then compression performance is achieved, but memory consumption becomes high

Engineering Contradiction:
Improvecompressed data sizeVSAvoidmemory consumption
Core Design Contradiction:
Quantity of substanceVSWeight of stationary object

Solution Approach 1:

The patent applies local quality by making the index table connection-specific rather than global. Each connection maintains its own compact index table containing only the headers relevant to that connection, reducing memory usage compared to maintaining a large global table for all connections. This allows efficient compression per connection while keeping overall memory consumption low.

Inventive Principle:
Principle #3Local quality

3Reliability

If dedicated memory is allocated for each connection's encoder, then compression is performed independently, but memory consumption increases with the number of connections

Engineering Contradiction:
Improveindependent encodingVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSWeight of stationary object

Solution Approach 1:

The patent makes the index table structure universal across multiple connections while allowing connection-specific content. The same index table mechanism serves all connections, but each connection populates it with its own relevant headers. This multi-functional approach allows the system to handle multiple connections efficiently without proportionally increasing memory usage.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP2786495B1Methods and devices for encoding and decoding messages
Publication Date: 2020.01.08 CANON KK
  • EP2786495B1 patent drawingFigure 1~2d
  • EP2786495B1 patent drawingFigure 3(3a)~3(3b)
  • EP2786495B1 patent drawingFigure 4a~4b

AI summary

Methods and devices for encoding or decoding messages, each message including a list of information items. The encoding method comprises determining a first list of indexes associated with information items that are already indexed in a local indexing table and a second list of literal values of other information items not yet indexed in said indexing table; encoding the indexes of the first list; binary compressing at least a serialized binary representation of the literal values of the second list; and concatenating the first list and the second list together to obtain an encoded bitstream of the information items. When the messages are sent over a plurality of connections, a global table is shared between the connections to store the indexed items of information; and a local indexing table for each connection associates indexes with references to an entry of the shared global table.