skip to main content
10.1145/3095786.3095787acmotherconferencesArticle/Chapter ViewAbstractPublication PagescfiConference Proceedingsconference-collections
research-article

Exploring HTTP/2 Header Compression

Published:14 June 2017Publication History

ABSTRACT

For every HTTP/1.1 request and response, almost the same set of headers is transferred. This wastes bandwidth, the most expensive resource of the browser-server communication. To solve this issue, header compression for HTTP/2 was standardized. During the standardization, we found that one element of the compression technology, the so called reference set, contributes little to the compression ratio while its mechanism is complicated. With our proposal, the reference set was removed and the specification and implementations were drastically simplified. For high performance implementation of header compression, we devised token-based reverse indices, length guessing for Huffman encoding, and pre-calculated state transitions for Huffman decoding.

References

  1. Compression Ratio. https://github.com/http2jp/hpack-test-case/wiki/Compression-Ratio.Google ScholarGoogle Scholar
  2. The CRIME attack. http://www.ekoparty.org/archive/2012/CRIME_ekoparty2012.pdf.Google ScholarGoogle Scholar
  3. A criterion tutorial. http://www.serpentine.com/criterion/tutorial.html.Google ScholarGoogle Scholar
  4. H2O. https://github.com/h2o/h2o.Google ScholarGoogle Scholar
  5. HPACK - Header Compression for HTTP/2. https://tools.ietf.org/html/draft-ietf-httpbis-header-compression-08.Google ScholarGoogle Scholar
  6. HPACK - Header Compression for HTTP/2. https://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09.Google ScholarGoogle Scholar
  7. HPACK test case. https://github.com/http2jp/hpack-test-case.Google ScholarGoogle Scholar
  8. HTTP Header Samples. https://github.com/http2/http_samples.Google ScholarGoogle Scholar
  9. HTTP/2 Japan Local Activity. https://http2.info/.Google ScholarGoogle Scholar
  10. The http2 package. http://hackage.haskell.org/package/http2.Google ScholarGoogle Scholar
  11. Nghttp2: Http/2 c library. https://nghttp2.org/.Google ScholarGoogle Scholar
  12. QUIC: A UDP-Based Multiplexed and Secure Transport. https://tools.ietf.org/html/draft-ietf-quic-http.Google ScholarGoogle Scholar
  13. Re: Understanding how HPAC draft-02 works. http://lists.w3.org/Archives/Public/ietf-http-wg/2013JulSep/1135.html.Google ScholarGoogle Scholar
  14. SPDY Protocol. http://dev.chromium.org/spdy/spdy-protocol/.Google ScholarGoogle Scholar
  15. The Internet Engineering Task Force (IETF). https://www.ietf.org/.Google ScholarGoogle Scholar
  16. M. Belshe, R. Peon, and M. Thomson. Hypertext Transfer Protocol Version 2 (http/2), 2015. RFC7540.Google ScholarGoogle Scholar
  17. P. Deutsch. DEFLATE Compressed Data Format Specification version 1.3, 1996. RFC1951. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, and T. Berners-Lee. Hypertext Transfer Protocol --- HTTP/1.1, 1997. RFC2068, RFC2616 and RFC 7230--7235. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. Huffman. A Method for the Construction of Minimum-Redundancy Codes. In Proceedings of the I.R.E., 1952.Google ScholarGoogle ScholarCross RefCross Ref
  20. S. Marlow et al. Haskell 2010 Language Report, 2010.Google ScholarGoogle Scholar
  21. S. Marlow and S. P. Jones. The Glasgow Haskell Compiler. In the Architecture of Open Source Applications, volume 2. 2012. http://www.aosabook.org/en/ghc.html.Google ScholarGoogle Scholar
  22. R. Pajarola. Fast Prefix Code Processing. In Proceedings of IEEE ITCC Conference, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. R. Peon and H. Ruellan. HPACK: Header Compression for HTTP/2, 2015. RFC7541.Google ScholarGoogle Scholar
  24. K. Yamamoto. Experience Report: Developing High Performance HTTP/2 Server in Haskell. In Proceedings of Haskell Symposium, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Exploring HTTP/2 Header Compression

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        CFI'17: Proceedings of the 12th International Conference on Future Internet Technologies
        June 2017
        52 pages
        ISBN:9781450353328
        DOI:10.1145/3095786

        Copyright © 2017 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 14 June 2017

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed limited

        Acceptance Rates

        CFI'17 Paper Acceptance Rate8of15submissions,53%Overall Acceptance Rate29of55submissions,53%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader