Menu

Showing posts with label HTTP/2. Show all posts
Showing posts with label HTTP/2. Show all posts

What is httpd?

HTTP server daemon(HTTPD), or the Apache HTTP Server, is a popular open-source web server software that is used to serve websites and web applications over the internet. It is developed and maintained by the Apache Software Foundation and is available for multiple operating systems including Linux, Windows, and macOS.

Apache HTTP Server is capable of handling a wide range of HTTP requests and supports several important web protocols such as HTTP/1.1, HTTP/2, and TLS/SSL. It can also be configured to support various programming languages and frameworks such as PHP, Python, and Ruby on Rails.

One of the reasons for Apache's popularity is its flexibility and extensibility. It supports a wide range of modules and plugins, which can be used to add various features and functionalities to the web server. These modules can be used to enhance the security, performance, and functionality of the web server.

Overall, Apache HTTP Server is a reliable and widely used web server software that has been serving websites and web applications for over two decades.

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