IP Library Granted Patent US 9,203,684
Granted Patent B1
US 9,203,684 · App. 13/183,048 · Granted Dec 1, 2015

Reduction of web page load time using HTTP header compression

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,203,684
App. No.
13/183,048
Granted
Dec 1, 2015
Kind
B1
Abstract

Methods and systems for reducing web page load time using HTTP header compression are provided. A method for reducing web page load time includes preloading HTTP header keywords into a compression dictionary. The method also includes compressing one or more fields in an HTTP header corresponding with a web page request using the compression dictionary. The method further includes transmitting the compressed HTTP header over a network. A system for reducing web page load time includes a compression dictionary preloaded with HTTP header keywords. The system also includes a header compressor to compress one or more fields in an HTTP header using the compression dictionary, and a transmitter to transmit the compressed HTTP header over a network.

Claims (38)

1. A computing device-implemented method for reducing web page load time comprising:

preloading HTTP header keywords into a compression dictionary;

compressing, with a computing device, one or more fields present in an HTTP header corresponding with a web page request using the compression dictionary, wherein the compressing comprises excluding one or more of the fields of the HTTP header, wherein the excluded fields of the HTTP header are not present in a resultant compressed HTTP header of the HTTP header, and wherein a first compression context is maintained for the compression of the HTTP header and a separate second compression context is maintained for a compression of data;

wherein the web page request comprises a request to open a plurality of server-initiated streams initialized with the compression dictionary, and wherein a particular one of the streams remain open until one of: a user navigates away from a web page referencing the particular open stream, or a period of inactivity has elapsed during which no subsequent web page requests or responses are transmit via the particular stream; and

transmitting the compressed HTTP header over a network to a device associated with the web page request.

2. The method of claim 1 , wherein the compressing includes compressing name value pairs.

3. The method of claim 1 , wherein the compressing includes configuring the HTTP header to eliminate duplicate fields from the HTTP header.

4. The method of claim 1 , wherein the compressing includes disabling chunked encoding.

5. The method of claim 1 , wherein the compressing includes using a previous compression state for compression.

6. A system for reducing web page load time comprising:

a memory comprising a compression dictionary preloaded with HTTP header keywords;

a header compressor, implemented on a computing device, to compress one or more fields present in an HTTP header corresponding with a web page request using the compression dictionary, wherein the compressing comprises excluding one or more of the fields of the HTTP header, wherein the excluded fields of the HTTP header are not present in a resultant compressed HTTP header of the HTTP header, and wherein a first compression context is maintained for the compression of the HTTP header and a separate second compression context is maintained for a compression of data;

wherein the web page request comprises a request to open a plurality of server-initiated streams initialized with the compression dictionary, and wherein a particular one of the streams remain open until one of: a user navigates away from a web page referencing the particular open stream, or a period of inactivity has elapsed during which no subsequent web page requests or responses are transmit via the particular stream; and

a transmitter device to transmit the compressed HTTP header over a network to a device associated with the web page request.

7. The system of claim 6 , wherein the compressor compresses name value pairs.

8. The system of claim 6 , wherein the header compressor is configured to eliminate duplicate fields from the HTTP header.

9. The system of claim 6 , wherein the header compressor is configured to disable chunked encoding.

10. The system of claim 1 , wherein the header compressor is configured to use a previous compression state for compression.

11. A computing device-implemented method for reducing web page load time comprising:

receiving a compressed HTTP header corresponding with a web page request, wherein the received compressed HTTP header is stored in a memory, wherein one or more fields in the compressed HTTP header have been compressed using a compression dictionary associated with the web page request, wherein the compressed HTTP header does not include one or more fields of the HTTP header that were excluded during a compression of the HTTP header, wherein the excluded fields from the HTTP header are not present in the resultant compressed HTTP header, and wherein a first compression context corresponds to the compression of the HTTP header and a separate second compression context corresponds to a compression of data;

wherein the web page request comprises a request to open a plurality of server-initiated streams initialized with the compression dictionary, and wherein a particular one of the streams remain open until one of: a user navigates away from a web page referencing the particular open stream, or a period of inactivity has elapsed during which no subsequent web page requests or responses are transmit via the particular stream; and

determining, with a computing device, HTTP header information according to the compression dictionary.

12. A system for reducing web page load time comprising:

a receiver device to receive a compressed HTTP header corresponding with a web page request, wherein one or more fields in the compressed HTTP header have been compressed using a compression dictionary associated with the web page request, wherein the compressed HTTP header does not include one or more fields of the HTTP header that were excluded during a compression of the HTTP header, wherein the excluded fields from the HTTP header are not present in the resultant compressed HTTP header, and wherein a first compression context corresponds to the compression of the HTTP header and a separate second compression context corresponds to a compression of data;

wherein the web page request comprises a request to open a plurality of server-initiated streams initialized with the compression dictionary, and wherein a particular one of the streams remain open until one of: a user navigates away from a web page referencing the particular open stream, or a period of inactivity has elapsed during which no subsequent web page requests or responses are transmit via the particular stream; and

a memory comprising a local compression dictionary corresponding to the compression dictionary used to compress the received compressed HTTP header; and

a header parser, implemented on a computing device, to determine HTTP header information according to the local compression dictionary.

13. A non-transitory computer readable storage medium having instructions stored thereon that, when executed by a processor, cause the processor to perform operations including:

preloading HTTP header keywords into a compression dictionary;

compressing one or more fields present in an HTTP header corresponding with a web page request using the compression dictionary, wherein the compressing comprises excluding one or more of the fields of the HTTP header, wherein the excluded fields of the HTTP header are not present in a resultant compressed HTTP header of the HTTP header, and wherein a first compression context is maintained for the compression of the HTTP header and a separate second compression context is maintained for a compression of data;

wherein the web page request comprises a request to open a plurality of server-initiated streams initialized with the compression dictionary, and wherein a particular one of the streams remain open until one of: a user navigates away from a web page referencing the particular open stream, or a period of inactivity has elapsed during which no subsequent web page requests or responses are transmit via the particular stream; and

transmitting the compressed HTTP header over a network to a device associated with the web page request.

14. The method of claim 1 , wherein the compressing comprises:

identifying one or more of the fields of the HTTP header that are static; and

compressing the HTTP header, wherein one or more of the identified static fields are ignored fields and are not present in the resultant compressed HTTP header.

15. The method of claim 14 , wherein the static fields comprise fields of the HTTP header with values that have already been transmitted on a communication channel, and wherein the values have not changed since the previous transmission.

16. The method of claim 1 , wherein the transmitting comprises:

transmitting the compressed HTTP header corresponding to a device requesting the web page, wherein the device receiving the compressed HTTP header is configured to determine the HTTP header according to the compression dictionary used to compress the one or more fields of the HTTP header.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2011
From: BELSHE, MICHAEL; PEON, ROBERTO
To: GOOGLE INC.
Reel/Frame 026698/0734 →