HTTP/2
The behavior enables HTTP/2, an open networking protocol for transporting web content. It is designed to reduce latency and resource consumption when loading web properties.
HTTP/2 enhances standard HTTP 1.0 and 1.1 by allowing you to request and download multiple objects concurrently over a single TCP connection. HTTP/2 also provides object prioritization, and uses HTTP header compression to conserve bandwidth.
How it works
For your properties on the Akamai Intelligent Platform, you can enable HTTP/2 for TLS connections on the last mile. The last mile has the most performance impact, as it is the final leg of connectivity from an Akamai edge server to a browser.
Your origin doesn't need to support HTTP/2 in order to implement it for your Akamai configuration. When you enable HTTP/2, and a request is received from a browser that supports HTTP/2, the edge server sets up:
- an HTTP/2 connection, over TLS, between the edge server and the end user’s browser, and
- a non-HTTP/2 connection between the edge server and your origin.
You can add HTTP/2 to your secure configuration on supporting products on Property Manager.
HTTP/2 characteristics
-
Multiplexing. HTTP/2 allows for concurrent streams over a single TCP connection, which helps reduce latency. Akamai’s HTTP/2 implementation will limit the number of concurrent streams.
-
Prioritization and Dependencies. With prioritization, a HTTP/2-enabled browser can download the objects and/or scripts that are most important to load first, followed by those with a lesser priority.
For Akamai’s HTTP/2 implementation, edge servers will handle sending objects by priority. -
HTTP Header Compression. By compressing HTTP request and response headers, HTTP/2 transmits fewer packets and bytes, which helps reduce payload.
-
HTTP/2 Server Push. Supported between the Akamai edge and the client on certain products and configuration options. Contact your Akamai team to learn more.
HTTP/2's advantage over HTTP
HTTP was designed at a time when web pages were substantially smaller, simpler, and with fewer resources. With HTTP, when a browser requests an object, it must receive the entire object before downloading another. At least one round trip from the browser to the origin occurs for each object retrieved.
While HTTP and HTTP/2 both run on the application layer, HTTP/2 natively allows multiple data streams between the browser and origin end points. With HTTP/2 you can request and download many objects concurrently over a single TCP connection.
This is an improvement over HTTP, which requires the browser to establish several TCP connections and use server-side techniques (like domain sharding) to create and manage multiple, concurrent data streams. While these techniques enhance HTTP, they are onerous to maintain and can lead to latency problems stemming from:
- the need to open a new connection per request (and the associated setup cost), and
- client-side rationing of connections to avoid opening too many connections to a single server.
As HTTP/2 supports multiplexing, no special techniques are required.
Implementation
Once HTTP/2 or the beta channel has been added to your contract, you can add it to your property configurartion. This behavior doesn't include any options. Specifying the behavior itself enables it.
How to
- In the Control Center, select an account and a group/context.
- Select the secure (TLS) property to which you want to add HTTP/2.
- Under Property Configuration Settings, click Add Rule.
- Under Default Templates select Performance.
- Select Enable HTTP/2 from the list of templates and click Insert Rule.
- In the Criteria section, specify a hostname. The Percentage of Clients using HTTP/2 defaults to 100 percent.
- Make sure HTTP/2 Support appears in the Behaviors section.
- Click Save to save your changes to the rule, then activate the newly-updated property.
If you want to update the ciphers associated with certificate used for this secure property, you can use Certificate Provisioning System (CPS).
Tips and best practices
- Enable mPulse. To understand HTTP/2’s performance impact on your site and to begin to optimize for performance, we recommend you enable the mPulse behavior to leverage HTTP/2’s “percentage of clients” sliding bar and enable an a/b test with and without HTTP/2.
- Keep HTTP/2. Akamai offers support for the HTTP/3 protocol as well. To continue supporting requests that use HTTP/2, this behavior also needs to be in your delivery configuration. HTTP/3 doesn't replace HTTP/2.
Related topics
Updated about 1 year ago