Potatoswatter
Potatoswatter

Reputation: 137910

HTTP header compression

HTTP headers aren't very efficient. Dozens of bytes more than necessary are used between the minimal method and response headers.

Has there been any proposal to standardize a binary or compressed format for HTTP?

Is there a similar standard besides HTTP which is better suited to interactive mobile applications?

Upvotes: 9

Views: 11073

Answers (4)

Kris
Kris

Reputation: 4823

This is an old question and I think it needs an update. Although I have no deeper understanding of this topic myself I stumbled over this very good article which explains the HPACK compression of HTTP/2.

In short it says:

  • SPDY was vulnerable to the CRIME attack so no one really used its header compression
  • HTTP/2 supports a new dedicated header compression algorithm, called HPACK
  • HPACK is resilient to CRIME
  • HPACK uses three methods of compression: Static Dictionary, Dynamic Dictionary, Huffman Encoding

Upvotes: 5

Potatoswatter
Potatoswatter

Reputation: 137910

HTTP/2.0, currently in a drafting phase, is an evolution of SPDY designed to address these issues.

Specifically, it replaces the request lines and headers with a compact binary format. It adds a server push facility and multiplexes streams over a single connection, to avoid the overhead of multiple connections and head-of-queue blocking. There are various other goodies.

I am working on a lightweight/cut-to-fit C++ implementation.

Upvotes: 6

typo.pl
typo.pl

Reputation: 8942

As referenced in Stackoverflow - How to compress HTTP response headers?:

See Google's SPDY research project: Google's SPDY research project

From SPDY whitepaper:

The role of header compression

Header compression resulted in an ~88% reduction in the size of request headers and an ~85% reduction in the size of response headers. On the lower-bandwidth DSL link, in which the upload link is only 375 Kbps, request header compression in particular, led to significant page load time improvements for certain sites (i.e. those that issued large number of resource requests). We found a reduction of 45 - 1142 ms in page load time simply due to header compression.

Upvotes: 11

Myles
Myles

Reputation: 21510

Shortly, I would say no and no. HTTP was invented, IMHO, to do away with proprietary server/client communication. Does that mean you can't still do proprietary server/client communication? No. Go ahead and write your own server and protocol, open up whatever port you want and have a ball.

Upvotes: 0

Related Questions