HTTP2 Tutorial - The Past and Present of HTTP2
HTTP was originally proposed by Timberners-Lee, a pioneer of the World Wide Web, who designed the application protocol with simplicity in mind to perform advanced data communication functions between web servers and clients.
The first documented version of HTTP was HTTP 0.9, released in 1991, and HTTP 1.0 was officially introduced in 1996. HTTP 1.1 was subsequently released in 1997, and has had few iterative improvements since then.
In February 2015, the Internet Engineering Task Force (IETF) HTTP Working Group revised HTTP and developed the second major version of the application protocol in the form of HTTP/2. In May 2015, the HTTP/2 implementation specification was formally standardized in response to Google's HTTP-compatible SPDY protocol.
What is a protocol?
Discussions of HTTP/2 vs. HTTP1 must begin with the term protocol, which is often used in this resource. A protocol is a set of rules that govern the data communication mechanism between a client (such as a web browser that an internet user uses to request information) and a server (the machine that contains the requested information).
A protocol usually consists of three main parts: Header, Payload, and Footer. The header placed in front of the payload contains information such as source and destination addresses and other details about the payload (such as size and type). The payload is the actual information transmitted using the protocol. The Footer follows the payload and acts as a control field to route the client-server request along with the Header to the intended recipient to ensure that the transmission of the payload data is error-free.
The system is similar to the postal service. The letter (payload) is inserted into an envelope (Header) with the destination address written on it and sealed with glue and a stamp (Footer) before sending. However, transmitting digital information in the form of 0s and 1s is not that simple and requires a new dimension of innovation to cope with the technological advances brought about by the explosive growth of Internet usage.
The HTTP protocol originally consisted of basic commands: GET, which retrieves information from the server; POST, which passes the requested information to the client. This simple and apparently boring set of commands for getting data and posting responses essentially formed the basis on which other network protocols were built. The protocol is another step in improving the user experience and effectiveness of the Internet, and HTTP/2 implementation is needed to enhance the online presence. To learn more about the HTTP protocol, you can check out our HTTP tutorial
HTTP2 design and technical goals
HTTP has only undergone a few major reforms since its inception in the early 1990s. The latest version, HTTP1.1, has been serving the web world for 15 years. In the current era of dynamically updated information, resource-intensive multimedia content formats, and an over-emphasis on web performance, web pages have placed old protocol technologies in the legacy category. These trends require significant changes to HTTP/2 to improve the Internet experience. The article "The Shortcomings of HTTP1.1 " introduces some of the shortcomings of HTTP1.1
Early versions of the HTTP protocol were designed primarily for simplicity: HTTP/0.9 launched the World Wide Web with a single line of protocol; HTTP/1.0 was a formal specification of popular HTTP/0.9 extensions; HTTP 1.1 was an official IETF standard; see A brief history of HTTP. As a result, HTTP/0.9-1.x achieved their purpose: HTTP is the most widely used and adopted Internet application protocol.
However, implementation simplicity comes at the expense of application performance: HTTP/1.x clients need to use multiple connections to achieve concurrency and reduce latency; HTTP/1.x does not compress request and response headers, resulting in unnecessary network traffic; HTTP/1.x does not support effective resource prioritization, resulting in low utilization of the underlying TCP connection; and so on.
These limitations are not fatal, but as web applications continue to grow in scope, complexity, and importance in our daily lives, they have created a significant burden on both web developers and users, which is exactly what HTTP/2 aims to address:
HTTP/2 enables applications to use network resources more efficiently and reduce perceived latency by supporting header field compression and multiple concurrent exchanges on the same connection. Specifically, it interleaves request and response messages on the same connection and uses efficient encodings for HTTP header fields. > HTTP/2 also allows requests to be prioritized, allowing more important requests to complete more quickly, further improving performance. The resulting protocol is better for the network because fewer TCP connections can be used compared to HTTP/1.x. > This means less contention with other flows and longer duration of connections, which in turn improves utilization of available network capacity. Finally, HTTP/2 also enables more efficient processing of messages through the use of binary message framing. ( Hypertext Transfer Protocol Version 2, Draft 17)
It is important to note that the new HTTP version is an extension of its predecessor and is not expected to replace HTTP1.1 anytime soon. HTTP/2 implementations will not automatically support all encryption types available with HTTP1.1, but will certainly open the door to better alternatives or other encryption compatibility updates in the near future. However, feature comparisons such as HTTP/2 vs. HTTP1 and SPDY vs. HTTP/2 only show that the latest application protocol is the winner in terms of performance, security, and reliability. Some of the upgrades it makes to HTTP1.1 are described in HTTP2 Feature Upgrades
For reprinting, please send an email to 1244347461@qq.com for approval. After obtaining the author's consent, kindly include the source as a link.
Related Articles
How to redirect a website from HTTP to HTTPS
Publish Date:2025/03/16 Views:117 Category:NETWORK
-
HTTPS is a protocol for secure communication over computer networks and is widely used on the Internet. More and more website owners are migrating from HTTP to HTTPS, mainly due to the following 5 reasons: Google announced that websites usi
How to Fix the “SSL Handshake Failed” Error (5 Methods)
Publish Date:2025/03/16 Views:95 Category:NETWORK
-
Installing a Secure Sockets Layer (SSL) certificate on your WordPress site enables it to use HTTPS for a secure connection. Unfortunately, there are a lot of things that can go wrong in the process of verifying a valid SSL certificate and e
Detailed introduction to Let's Encrypt
Publish Date:2025/03/16 Views:129 Category:NETWORK
-
Let's Encrypt is a free, automated, and open certificate authority that officially launched in April 2016. It was originally founded in 2012 by two Mozilla employees. Their goal for founding Let's Encrypt was really simple; to encrypt the e
HTTP2 Tutorial - How to use HTTP/2 with HTTPS
Publish Date:2025/03/16 Views:84 Category:NETWORK
-
HTTPS is used to build ultra-secure networks connecting computers, machines, and servers to handle sensitive business and consumer information. HTTP/2 browser support includes HTTPS encryption, which actually complements the overall securit
Make an Http request on click in React
Publish Date:2025/03/11 Views:64 Category:React
-
要在 React 中单击时发出 http 请求: 在元素上设置 onClick 属性。 每次单击该元素时,都会发出一个 HTTP 请求。 更新状态变量并渲染数据。
JavaScript 中的 HTTP GET 请求
Publish Date:2024/03/22 Views:159 Category:JavaScript
-
要从 Web 浏览器中检索数据或任何类型的数据格式,我们可以使用 XMLHttpRequest 对象来捕获 URL 以及 Fetch API。
在 C# 中发出 HTTP POST Web 请求
Publish Date:2024/02/04 Views:132 Category:编程语言
-
在 C# 中,可以使用 3 种主要方法来发出 HTTP POST Web 请求:WebClient 类,HttpWebRequest 类和 HttpClient 类。本教程将讨论在 C# 中发出 HTTP POST Web 请求的方法。使用 C# 中的 WebClient 类发出 HTTP POST Web 请求
在 Java 中创建 HTTP 代理服务器
Publish Date:2023/10/10 Views:201 Category:Java
-
本教程演示如何在 Java 中创建代理服务器。在当今世界,代理几乎是每个人的需要。本教程演示如何在 Java 中创建 HTTP 代理服务器。在 Java 中创建 HTTP 代理服务器
使用 Java 创建 HTTPS 服务器
Publish Date:2023/08/10 Views:285 Category:Java
-
本文介绍如何使用 Java 创建简单的 HTTPS 服务器。使用 Java 创建 HTTPS 服务器 在用JAVA创建HTTPS服务器之前,我们必须确保已经生成了服务器将使用的Keystore和Truststore。