Menu

Showing posts with label HTTP2 Feature and advantage. Show all posts
Showing posts with label HTTP2 Feature and advantage. Show all posts

HTTP/2 features and upgrade

1. What is HTTP or HTTPS?

Hypertext Transfer Protocol (HTTP) is a protocol that is, the foundation of data communication for the World Wide Web.
HTTP is based on the Client and Server model. Where client send the request to server and then server send the response to the client based on the request. Here HTTP comes in picture and act as bridge between client and server to communicate with each other.

2. HTTP/2

In 2015 web world get an enhanced version of HTTP protocol HTTP/2. HTTP/2 provides us with many new mechanics that will mitigate HTTP/1.1 issues. HTTP/2 will make our applications faster, simpler, and more robust, which improve the performance of your website and that helps your organization to make more customer and more customers means more business. HTTP/2 transport the content in low-latency over World Wide Web.

3. Advantage of HTTP/2


3.1. Request and response multiplexing

HTTP/2 can send multiple requests and response for data in parallel over a single TCP connection. This is the most advanced feature of the HTTP/2 protocol because it allows you to download web files asynchronously from one server. HTTP/2 doesn’t make multiple TCP connections to transfer the content as HTTP/1.x does.

3.2. Binary protocol

The latest HTTP version has evolved significantly in terms of capabilities and attributes such as transforming from a text protocol to a binary protocol. HTTP1.x used to process text commands to complete request-response cycles. HTTP/2 will use binary commands (in 1s and 0s) to execute the same tasks.
Browsers using HTTP/2 implementation will convert the same text commands into binary before transmitting it over the network.

3.3. Header Compression

Each HTTP transfer carries a set of headers that describe the transferred resource and its properties. In HTTP/1.x, this metadata is always sent as plain text and adds anywhere from 500–800 bytes of overhead per transfer, and sometimes kilobytes more if HTTP cookies are being used.
To reduce this overhead and improve performance, HTTP/2 compresses request and response header metadata using the HPACK compression format that uses two simple but powerful techniques:

  1. It allows the transmitted header fields to be encoded via a static Huffman code, which reduces their individual transfer size.
  2. It requires that both the client and server maintain and update an indexed list of previously seen header fields (i.e., establishes a shared compression context), which is then used as a reference to efficiently encode previously transmitted values.

 3.4. Prioritization is resource/content

With HTTP/2 browsers prioritize requests based on type/context, and immediately dispatch the request as soon as the resource is discovered. The client can indicate the priority of the resource and communicated to the server (that’s get calculated by weights + dependencies of that resource), so server can fulfill those request before other requests.

4. How to enable SSL in AEM?

Please refer the Adobe document >> Enable SSL in AEM5

5. How to enable HTTP/2 on web server?

HTTP/2 is supported by all modern browsers, you have to just enable the HTTP/2 on your web server. To do so below are the steps and prerequisite.

5.1. Steps to enable HTTP/2 on Apache

To get HTTP/2 working on Apache you need to enable and load SSL and HTTP/2 modules6. To do so, you may run the following in your terminal:
sudo a2enmod ssl
then run this>>
sudo a2enmod http2
To activate the above modules you have to restart your server, to do so run the following:
sudo systemctl restart apache2
Now open your global Apache configuration or inside of a particular virtual host and apend the below line in your configuration.
Protocols h2 http/1.1

5.2. Prerequisites


  • Enable SSL or HTTPS on your server. Enable SSL in AEM5
  • TLS protocol version >= 1.2 with modern cipher suites is required.
  • Ensure that you are running Apache 2.4.17 or above. Because HTTP/2 doesn’t support in lower version of Apache.


6. References