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.
Showing posts with label HTTP/2. Show all posts
Showing posts with label HTTP/2. 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:
- 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?
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
- https://hpbn.co/http2/
- https://developers.google.com/web/fundamentals/performance/http2/
- https://httpd.apache.org/docs/2.4/howto/http2.html.en
- https://helpx.adobe.com/experience-manager/6-3/assets/using/http2.html
- https://docs.adobe.com/content/help/en/experience-manager-dispatcher/using/configuring/dispatcher-ssl.html
- https://www.howtoforge.com/how-to-enable-http-2-in-apache/
- HTTP/2 not enabled in Chrome
Subscribe to:
Posts (Atom)