HTTP Header Encoding with Shared Index Tables for Fast Compression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data compression methods for HTTP headers, such as SPDY, face inefficiencies in processing speed and memory consumption, particularly when handling large numbers of connections, due to high memory requirements and slow redundancy search processes.
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, while using a shared global table to optimize memory consumption across connections.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional binary compression (Deflate) is used for HTTP headers, then compression performance is maintained, but processing speed becomes poor and memory consumption becomes high
Solution Approach 1:
The patent segments the HTTP header compression process into two distinct phases: (1) an indexing phase where headers are converted into compact index references using a sliding window approach, and (2) a compression phase where these indexes are compressed using Deflate. This segmentation allows the computationally intensive redundancy search to operate on a smaller, pre-processed data structure, significantly improving processing speed while reducing memory consumption compared to applying Deflate directly to the original headers.
Solution Approach 2:
The patent applies preliminary indexing to HTTP headers before compression. By pre-processing the headers through an indexing mechanism that identifies and replaces redundant sequences with compact references, the system prepares the data in a form that requires less memory and processing power during the subsequent compression stage. This preliminary action resolves the contradiction by improving both speed and memory efficiency.
2Productivity
If a large number of connections are handled simultaneously, then service capacity increases, but memory consumption increases due to dedicated memory areas for each encoder
Solution Approach 1:
The patent implements a universal indexing structure that can be shared across multiple connections. Instead of maintaining separate indexing tables for each connection, the system uses a common indexing mechanism that serves multiple encoders simultaneously. This universal approach allows the system to handle a large number of connections while consuming minimal additional memory, as the indexing infrastructure is reused across all connections rather than being duplicated.
3Adaptability or versatility
If the serialized binary representation size increases due to many headers, then more headers can be compressed, but compression speed decreases
Solution Approach 1:
The patent applies local quality optimization by creating a compact indexed representation of headers that preserves the essential redundancy information while reducing the overall data size. The indexing mechanism locally transforms individual header sequences into compact references, maintaining the ability to process many headers while keeping the intermediate representation small enough to maintain high compression speed. This local transformation ensures that the system can handle variable numbers of headers without sacrificing performance.
Data Source
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.


