{"id":445,"date":"2019-07-31T10:03:19","date_gmt":"2019-07-31T10:03:19","guid":{"rendered":"https:\/\/cheapsslsecurity.com\/p\/?p=445"},"modified":"2019-07-31T10:09:20","modified_gmt":"2019-07-31T10:09:20","slug":"http-2-header-compression","status":"publish","type":"post","link":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/","title":{"rendered":"HTTP\/2 Header Compression: How it works"},"content":{"rendered":"<p>Wired as well as wireless networks suffer from the problem of network latency that leads to delays in packet delivery from source to destination. Each request from the client carries a set of headers that communicate relevant information to the server. The server, in turn, responds with a set of appropriate response headers that contains information pertaining to the size, file type, date, etc.<\/p>\n<p><!--more--><\/p>\n<p>Up until HTTP\/1.x, these headers were sent over the wire repeatedly for every request leading to a lot of duplicate data being sent uncompressed and causing inefficient use of bandwidth and introducing delays in page load time. We live in a world where there is a need for instant access to information without browsers taking their own sweet time to render pages. For network operators, it is of utmost importance to provide a high quality of service to retain and attract customers as this translates into a higher average revenue per user.<\/p>\n<h2>What is Header Compression?<\/h2>\n<p>Compressing headers reduces their size in terms of numbers of bytes that are transmitted during the connection. Consider his example: Todd is visiting an e-commerce website to purchase a gift. On a low bandwidth network, especially one not using header compression, the response time from the server is longer, and the website renders slowly at Todd\u2019s end.<\/p>\n<p>Using HTTP\/2 which deploys the HPACK format for header compression, the pages will load faster with better interactive response time. The header needs to be sent only once during the entire connection leading to a significant decrease in the packet header overhead.<\/p>\n<p>With the rise of mobile, along with more complex websites that need more and more requests to render a page, compressing headers reduces the overhead. It also improves transfer speed and bandwidth utilization.<\/p>\n<div class=\"graysection\">\n<h2>Purchase a GeoTrust SSL Certificate &#038; Save Up to 75%<\/h2>\n<p>We offer the best discount on all types of GeoTrust SSL Certificates, which includes DV SSL, EV SSL, Wildcard SSL, and Multi-Domain SSL Certificates.<\/p>\n<p><a class=\"comparebtn\" href=\"https:\/\/cheapsslsecurity.com\/sslbrands\/geotrust.html\">Shop GeoTrust SSL Certificates<\/a><\/p>\n<\/div>\n<h2>Problems with earlier protocols: HTTP\/1.1 and SPDY<\/h2>\n<ul>\n<li>In HTTP\/1.1 headers in every request are sent uncompressed on the network. However, schemes such as gzip or Deflate are used for content encoding.<\/li>\n<\/ul>\n<table class=\"table\" width=\"\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr class=\"trhead\">\n<td width=\"150\">Request sent via HTTP\/1.1<\/td>\n<td width=\"150\">Request sent via HTTP\/2<\/td>\n<\/tr>\n<tr>\n<td>GET \/index.html HTTP\/1.1<br \/>\nHost: www.site.com<br \/>\nReferer:https:\/\/www.site.com\/<br \/>\nAccept-Encoding:gzip<\/td>\n<td>:method: GET<br \/>\n:scheme: https<br \/>\n:host: www.site.com<br \/>\n:path: \/index.html<br \/>\nreferer: https:\/\/www.site.com\/<br \/>\naccept-encoding: gzip<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ul>\n<li>Head-of-Line Blocking is a major problem with HTTP\/1.1 where subsequent packets get blocked by the first packet in line since it allows a limited number of connections to the server.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-446 size-full lazyload\" data-src=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http-1-1-head-of-line-jacking.png\" alt=\"Figure 1: HTTP\/1.1 Head-of-Line Blocking\" width=\"803\" height=\"401\" data-srcset=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http-1-1-head-of-line-jacking.png 803w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http-1-1-head-of-line-jacking-300x150.png 300w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http-1-1-head-of-line-jacking-768x384.png 768w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http-1-1-head-of-line-jacking-500x250.png 500w\" data-sizes=\"(max-width: 803px) 100vw, 803px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 803px; --smush-placeholder-aspect-ratio: 803\/401;\" \/><\/p>\n<ul>\n<li>HTTTP\/2 solves the HOL Blocking problem with multiplexing that uses streams which can be prioritized.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-447 size-full lazyload\" data-src=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/connection-use-streams.png\" alt=\"Figure 2: HTTP\/2 Connections Use Streams\" width=\"819\" height=\"407\" data-srcset=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/connection-use-streams.png 819w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/connection-use-streams-300x149.png 300w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/connection-use-streams-768x382.png 768w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/connection-use-streams-500x248.png 500w\" data-sizes=\"(max-width: 819px) 100vw, 819px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 819px; --smush-placeholder-aspect-ratio: 819\/407;\" \/><\/p>\n<ul>\n<li>Google\u2019s SPDY came up with a new header compression algorithm using a pre-set dictionary, dynamic Huffman codes, and string matching. The issue was it used Deflate and was found to be vulnerable to the CRIME attack. Via this attack, a malicious user can extract secret authentication cookies from compressed headers. Most edge networks disabled header compression due to CRIME that could result in session hijacking.<\/li>\n<\/ul>\n<ul>\n<li>HTTP\/2 introduced a header compression algorithm, HPACK, that is considered to be safe against attacks such as CRIME.<\/li>\n<\/ul>\n<h2>HTTP\/2: HPACK Compression<\/h2>\n<ul>\n<li>HPACK does not use dynamic Huffman codes or partial backward string matches; instead, it uses three other methods of compression:\n<ul>\n<li>Static Dictionary \u2013 A dictionary of 61 commonly used header fields, some with predefined values. It is defined by the protocol and contains standard phrases [name: value pairs] that every HTTP connection uses.<\/li>\n<li>Dynamic Dictionary \u2013 It is empty at the start of the communication but gets filled later with exchanged values. It contains a list of actual headers being used. This dictionary has limited size, and when new entries are added, old entries might be evicted [FIFO].<\/li>\n<li>Huffman Encoding \u2013 A static Huffman code is used to encode any string: name or value which reduces the size. Indexed list of previously transferred values enables us to reconstruct the full header keys and values.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-449 size-large lazyload\" data-src=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/example-of-http-message-1024x522.png\" alt=\"Figure 3: Example HTTP Message\" width=\"584\" height=\"298\" data-srcset=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/example-of-http-message-1024x522.png 1024w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/example-of-http-message-300x153.png 300w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/example-of-http-message-768x391.png 768w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/example-of-http-message-500x255.png 500w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/example-of-http-message.png 1058w\" data-sizes=\"(max-width: 584px) 100vw, 584px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 584px; --smush-placeholder-aspect-ratio: 584\/298;\" \/><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-450 size-full lazyload\" data-src=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http2-use-connection-steams-1.png\" alt=\"Figure 4: HTTP\/2 HPACK Compression\" width=\"819\" height=\"407\" data-srcset=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http2-use-connection-steams-1.png 819w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http2-use-connection-steams-1-300x149.png 300w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http2-use-connection-steams-1-768x382.png 768w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http2-use-connection-steams-1-500x248.png 500w\" data-sizes=\"(max-width: 819px) 100vw, 819px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 819px; --smush-placeholder-aspect-ratio: 819\/407;\" \/><\/p>\n<ul>\n<li>Each HTTP transfer carries a set of headers that have information with regards to the resource and its properties. In HTTP\/1.x this metadata is transferred in plain text and adds an overhead of 500-800 bytes per request and more if cookies are being used. HTTP\/2\u2019s HPACK algorithm compresses request and response metadata using Huffman encoding that results in an average reduction of 30% in header size.<\/li>\n<li>A proof of concept done by Cloudflare on its network found a 53% reduction in ingress traffic with HTTP\/2\u2019s HPACK and a 1.4% savings on egress traffic.<\/li>\n<li>Three key benefits of HPACK:\n<ul>\n<li>Resilient against compression based attacks such as CRIME<\/li>\n<li>Static Huffman code allows encoding large headers by using binary codes<\/li>\n<li>Use of indexing allows frequently used headers to be sent as the index number for referencing instead of the entire literal string.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Huffman Encoding \u2013 How it Works<\/h2>\n<p>Let us consider an example to understand this algorithm. Suppose we want to encode the string \u201chappy\u201d using Huffman encoding:<\/p>\n<p>1. Assign weights depending on character frequency<\/p>\n<table class=\"table\" width=\"\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr class=\"trhead\">\n<td>Character<\/td>\n<td>Frequency<\/td>\n<\/tr>\n<tr>\n<td>h<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>a<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>p<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>y<\/td>\n<td>1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>2. Pick out two characters with the smallest weights and combine them into a tree with a root whose weight equals the sum of their individual weights.<\/p>\n<p><img decoding=\"async\" class=\"size-medium wp-image-453 aligncenter lazyload\" data-src=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/individual-weights-in-hpack-steam-283x300.png\" alt=\"individual weights\" width=\"283\" height=\"300\" data-srcset=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/individual-weights-in-hpack-steam-283x300.png 283w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/individual-weights-in-hpack-steam.png 364w\" data-sizes=\"(max-width: 283px) 100vw, 283px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 283px; --smush-placeholder-aspect-ratio: 283\/300;\" \/><\/p>\n<p>3. So now we have the following table:<\/p>\n<table class=\"table\" width=\"\" cellpadding=\"0\" cellspacing=\"0\">\n<tbody>\n<tr class=\"trhead\">\n<td>Nodes<\/td>\n<td colspan=\"2\">Character<\/td>\n<td>Weight<\/td>\n<\/tr>\n<tr>\n<td>Internal Node<\/td>\n<td>h<\/td>\n<td>a<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td colspan=\"2\">p<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td colspan=\"2\">y<\/td>\n<td>1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>4. Add the two minimum weights again to get another root with the leaf having the least weight on the left.<\/p>\n<p>p + y = 3:<\/p>\n<p><img decoding=\"async\" class=\"size-medium wp-image-454 aligncenter lazyload\" data-src=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/least-weight-in-hpack-234x300.png\" alt=\"Least Weight in Hpack\" width=\"234\" height=\"300\" data-srcset=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/least-weight-in-hpack-234x300.png 234w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/least-weight-in-hpack.png 283w\" data-sizes=\"(max-width: 234px) 100vw, 234px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 234px; --smush-placeholder-aspect-ratio: 234\/300;\" \/><\/p>\n<p>5. So now we have the following table with a new internal node:<\/p>\n<table class=\"table\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n<tbody>\n<tr class=\"trhead\">\n<td width=\"150\">Nodes<\/td>\n<td width=\"150\" colspan=\"2\">Character<\/td>\n<td width=\"150\">Weight<\/td>\n<\/tr>\n<tr>\n<td>Internal Node<\/td>\n<td>h<\/td>\n<td>a<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>Internal Node<\/td>\n<td>y<\/td>\n<td>p<\/td>\n<td>3<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>6. On repeating the previous steps, we get:<\/p>\n<p><img decoding=\"async\" class=\"size-medium wp-image-455 aligncenter lazyload\" data-src=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/repeating-weight-in-hpack-300x204.png\" alt=\"repeating weight in hpack\" width=\"300\" height=\"204\" data-srcset=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/repeating-weight-in-hpack-300x204.png 300w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/repeating-weight-in-hpack-440x300.png 440w, https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/repeating-weight-in-hpack.png 684w\" data-sizes=\"(max-width: 300px) 100vw, 300px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 300px; --smush-placeholder-aspect-ratio: 300\/204;\" \/><\/p>\n<p>The left child is assigned 0, and the right is assigned the value 1. We traverse the tree starting from the root node to the leaf node to get the code.<\/p>\n<table class=\"table\" width=\"\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr class=\"trhead\">\n<td width=\"150\">Character<\/td>\n<td width=\"150\">Code<\/td>\n<\/tr>\n<tr>\n<td>h<\/td>\n<td>00<\/td>\n<\/tr>\n<tr>\n<td>a<\/td>\n<td>01<\/td>\n<\/tr>\n<tr>\n<td>p<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>y<\/td>\n<td>10<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>How to Implement HTTP\/2 on Your Website<\/h2>\n<p>To gain the benefits of HTTP\/2 header compression, there are two basics steps you need to take:<\/p>\n<ul>\n<li><strong>Install SSL.<\/strong> Firefox and Chrome only implement HTTP\/2 over HTTPS so you need to get an SSL\/TLS certificate and switch each page on your site to https.<\/li>\n<li><strong>Enable HTTP\/2.<\/strong> All popular web server software packages, including IIS, Apache, and NGINX, offer HTTP\/2 support, you just need to enable it!<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Wired as well as wireless networks suffer from the problem of network latency that leads to delays in packet delivery from source to destination. Each request from the client carries a set of headers that communicate relevant information to the &hellip; <a href=\"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[20],"class_list":["post-445","post","type-post","status-publish","format-standard","hentry","category-ssl-basics","tag-http"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>HTTP\/2 Header Compression: How it works<\/title>\n<meta name=\"description\" content=\"Let&#039;s understand how HTTP\/ Header Compression works and let&#039;s learn about popular method of HTTP\/2: HPACK Compression through Huffman Encoding.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HTTP\/2 Header Compression: How it works\" \/>\n<meta property=\"og:description\" content=\"Let&#039;s understand how HTTP\/ Header Compression works and let&#039;s learn about popular method of HTTP\/2: HPACK Compression through Huffman Encoding.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/\" \/>\n<meta property=\"og:site_name\" content=\"Cheap SSL Security\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/CheapSSLSecurities\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-31T10:03:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-07-31T10:09:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http-1-1-head-of-line-jacking.png\" \/>\n<meta name=\"author\" content=\"casey.crane\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sslsecurity\" \/>\n<meta name=\"twitter:site\" content=\"@sslsecurity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"casey.crane\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/http-2-header-compression\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/http-2-header-compression\\\/\"},\"author\":{\"name\":\"casey.crane\",\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/#\\\/schema\\\/person\\\/d9c1744bb0931c1942814061a5aca108\"},\"headline\":\"HTTP\\\/2 Header Compression: How it works\",\"datePublished\":\"2019-07-31T10:03:19+00:00\",\"dateModified\":\"2019-07-31T10:09:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/http-2-header-compression\\\/\"},\"wordCount\":1049,\"image\":{\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/http-2-header-compression\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/http-1-1-head-of-line-jacking.png\",\"keywords\":[\"http\"],\"articleSection\":[\"SSL Basics\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/http-2-header-compression\\\/\",\"url\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/http-2-header-compression\\\/\",\"name\":\"HTTP\\\/2 Header Compression: How it works\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/http-2-header-compression\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/http-2-header-compression\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/http-1-1-head-of-line-jacking.png\",\"datePublished\":\"2019-07-31T10:03:19+00:00\",\"dateModified\":\"2019-07-31T10:09:20+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/#\\\/schema\\\/person\\\/d9c1744bb0931c1942814061a5aca108\"},\"description\":\"Let's understand how HTTP\\\/ Header Compression works and let's learn about popular method of HTTP\\\/2: HPACK Compression through Huffman Encoding.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/http-2-header-compression\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/http-2-header-compression\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/http-2-header-compression\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/http-1-1-head-of-line-jacking.png\",\"contentUrl\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/http-1-1-head-of-line-jacking.png\",\"width\":803,\"height\":401,\"caption\":\"Figure 1: HTTP\\\/1.1 Head-of-Line Blocking\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/http-2-header-compression\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"SSL Help\",\"item\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SSL Basics\",\"item\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/ssl-basics\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"HTTP\\\/2 Header Compression: How it works\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/#website\",\"url\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/\",\"name\":\"Cheap SSL Security\",\"description\":\"Shop for SSL Certificates at Cheap Prices\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/cheapsslsecurity.com\\\/p\\\/#\\\/schema\\\/person\\\/d9c1744bb0931c1942814061a5aca108\",\"name\":\"casey.crane\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c18d819d34a1995e91a4aa7518e9048df7856f336a1ede2262a572db7b1c2506?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c18d819d34a1995e91a4aa7518e9048df7856f336a1ede2262a572db7b1c2506?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c18d819d34a1995e91a4aa7518e9048df7856f336a1ede2262a572db7b1c2506?s=96&d=mm&r=g\",\"caption\":\"casey.crane\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"HTTP\/2 Header Compression: How it works","description":"Let's understand how HTTP\/ Header Compression works and let's learn about popular method of HTTP\/2: HPACK Compression through Huffman Encoding.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/","og_locale":"en_US","og_type":"article","og_title":"HTTP\/2 Header Compression: How it works","og_description":"Let's understand how HTTP\/ Header Compression works and let's learn about popular method of HTTP\/2: HPACK Compression through Huffman Encoding.","og_url":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/","og_site_name":"Cheap SSL Security","article_publisher":"https:\/\/www.facebook.com\/CheapSSLSecurities","article_published_time":"2019-07-31T10:03:19+00:00","article_modified_time":"2019-07-31T10:09:20+00:00","og_image":[{"url":"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http-1-1-head-of-line-jacking.png","type":"","width":"","height":""}],"author":"casey.crane","twitter_card":"summary_large_image","twitter_creator":"@sslsecurity","twitter_site":"@sslsecurity","twitter_misc":{"Written by":"casey.crane","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/#article","isPartOf":{"@id":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/"},"author":{"name":"casey.crane","@id":"https:\/\/cheapsslsecurity.com\/p\/#\/schema\/person\/d9c1744bb0931c1942814061a5aca108"},"headline":"HTTP\/2 Header Compression: How it works","datePublished":"2019-07-31T10:03:19+00:00","dateModified":"2019-07-31T10:09:20+00:00","mainEntityOfPage":{"@id":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/"},"wordCount":1049,"image":{"@id":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/#primaryimage"},"thumbnailUrl":"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http-1-1-head-of-line-jacking.png","keywords":["http"],"articleSection":["SSL Basics"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/","url":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/","name":"HTTP\/2 Header Compression: How it works","isPartOf":{"@id":"https:\/\/cheapsslsecurity.com\/p\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/#primaryimage"},"image":{"@id":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/#primaryimage"},"thumbnailUrl":"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http-1-1-head-of-line-jacking.png","datePublished":"2019-07-31T10:03:19+00:00","dateModified":"2019-07-31T10:09:20+00:00","author":{"@id":"https:\/\/cheapsslsecurity.com\/p\/#\/schema\/person\/d9c1744bb0931c1942814061a5aca108"},"description":"Let's understand how HTTP\/ Header Compression works and let's learn about popular method of HTTP\/2: HPACK Compression through Huffman Encoding.","breadcrumb":{"@id":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/#primaryimage","url":"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http-1-1-head-of-line-jacking.png","contentUrl":"https:\/\/cheapsslsecurity.com\/p\/wp-content\/uploads\/2019\/07\/http-1-1-head-of-line-jacking.png","width":803,"height":401,"caption":"Figure 1: HTTP\/1.1 Head-of-Line Blocking"},{"@type":"BreadcrumbList","@id":"https:\/\/cheapsslsecurity.com\/p\/http-2-header-compression\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"SSL Help","item":"https:\/\/cheapsslsecurity.com\/p\/"},{"@type":"ListItem","position":2,"name":"SSL Basics","item":"https:\/\/cheapsslsecurity.com\/p\/ssl-basics\/"},{"@type":"ListItem","position":3,"name":"HTTP\/2 Header Compression: How it works"}]},{"@type":"WebSite","@id":"https:\/\/cheapsslsecurity.com\/p\/#website","url":"https:\/\/cheapsslsecurity.com\/p\/","name":"Cheap SSL Security","description":"Shop for SSL Certificates at Cheap Prices","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cheapsslsecurity.com\/p\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/cheapsslsecurity.com\/p\/#\/schema\/person\/d9c1744bb0931c1942814061a5aca108","name":"casey.crane","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c18d819d34a1995e91a4aa7518e9048df7856f336a1ede2262a572db7b1c2506?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c18d819d34a1995e91a4aa7518e9048df7856f336a1ede2262a572db7b1c2506?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c18d819d34a1995e91a4aa7518e9048df7856f336a1ede2262a572db7b1c2506?s=96&d=mm&r=g","caption":"casey.crane"}}]}},"_links":{"self":[{"href":"https:\/\/cheapsslsecurity.com\/p\/wp-json\/wp\/v2\/posts\/445","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cheapsslsecurity.com\/p\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cheapsslsecurity.com\/p\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cheapsslsecurity.com\/p\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/cheapsslsecurity.com\/p\/wp-json\/wp\/v2\/comments?post=445"}],"version-history":[{"count":0,"href":"https:\/\/cheapsslsecurity.com\/p\/wp-json\/wp\/v2\/posts\/445\/revisions"}],"wp:attachment":[{"href":"https:\/\/cheapsslsecurity.com\/p\/wp-json\/wp\/v2\/media?parent=445"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cheapsslsecurity.com\/p\/wp-json\/wp\/v2\/categories?post=445"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cheapsslsecurity.com\/p\/wp-json\/wp\/v2\/tags?post=445"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}