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:
- It allows
the transmitted header fields to be encoded via a static Huffman code, which
reduces their individual transfer size.
- 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?
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:
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.
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