Shared Header Indexing for Multi-Client HTTP Server Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing HTTP/2.0 standard incurs high processing and memory costs for server devices managing multiple client connections, particularly for small embedded devices, due to the need for separate server-initiated header indexing tables for each connection.

Innovation Solution

A method where a single server-initiated indexing table is shared across multiple client connections, with the server device pushing this table to client entities to configure them for decoding, allowing the server device to encode information items using item indexing based on the shared table, reducing memory usage and processing costs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a separate server-initiated indexing table is maintained for each client connection, then each client can be configured for decoding with connection-specific headers, but memory consumption and processing costs at the server device increase significantly

Engineering Contradiction:
Improveconnection-specific header configurationVSAvoidmemory consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent merges multiple connection-specific indexing tables into a single shared server-initiated indexing table that is common to all client connections. This single table is pushed to all clients, eliminating the need to maintain separate tables for each connection, thereby reducing memory consumption while still allowing clients to be configured with the necessary header information for decoding.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The single server-initiated indexing table serves multiple functions and multiple clients simultaneously. It is used as the basis for encoding headers for all client connections and is pushed to all clients to configure their decoders, making the indexing table universal across all connections rather than connection-specific.

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

2Productivity

If a separate server-initiated indexing table is maintained for each client connection, then header encoding can be optimized for each connection, but processing costs at the server device increase

Engineering Contradiction:
Improveheader compression efficiencyVSAvoidprocessing cost
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent combines the header encoding process for multiple clients into a unified process using a single shared indexing table. Instead of maintaining and updating separate indexing tables for each connection, the server maintains one table and pushes it to all clients, significantly reducing the processing overhead and complexity at the server device.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of operation

If literal representation is used for HTTP headers, then no special configuration is needed at clients, but compression efficiency decreases due to redundancy in successive messages

Engineering Contradiction:
Improveclient configuration simplicityVSAvoiddata redundancy
Core Design Contradiction:
Ease of operationVSLoss of substance

Solution Approach 1:

The server performs preliminary action by pushing the server-initiated indexing table to clients before actual header encoding takes place. This allows clients to pre-configure their decoders with the necessary indexing information, enabling efficient compressed header decoding without requiring complex client-side configuration or manual setup.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9471646B2Method and server device for exchanging information items with a plurality of client entities
Publication Date: 2016.10.18 CANON KK
  • US9471646B2 patent drawing
  • US9471646B2 patent drawing
  • US9471646B2 patent drawing

AI summary

The invention concerns a method of exchanging information items, e.g. HTTP headers, between a server device and a plurality of clients, and also concerns such a server device. The server device establishes connections with clients, wherein each connection involves a server-initiated indexing table for the server device to encode information items to be sent over the connection in the server-to-client direction. The method comprises the following steps performed at the server device: obtaining a same single indexing table as the server-initiated indexing table of the connections; in response to receiving a request for data from a client, pushing entries of the table to the client to configure the latter for item exchange in the server-to-client direction, encoding information items associated with the requested data using item indexing based on the table and sending the encoded information items to the client over the connection established with it.