HTTP: The internet king
The Hypertext Transfer Protocol, known as HTTP, is an application protocol for transmitting hypermedia documents and resources. HTTP was designed within the framework of the Internet protocol suite, and it is the foundation of any data communication on the web. If you’re watching an online video, sharing photos with friends, or you’re just surfing the web, you’re using HTTP.
However, as internet users, we are more familiar with HTTPS (Hypertext Transfer Protocol Secure), which is basically the secure version of HTTP, where the communications between the browser (or any other client) and the server are encrypted using TLS.
HTTP has been evolving over time. First, there was HTTP/1.1 that introduced persistent connections, caching and chunked transfers. Those added features improved significantly the performance of HTTP/1.0 when compared with previous versions. This performance improvement was largely caused by reusing connections between HTTP requests to avoid a 3-way handshake of TCP every call.
Then HTTP/2 arrived, bringing along multiplexing, header compression and server push capabilities. It was not expected that multiplexing would dramatically improve performance. Instead, it causes a substantial reduction in the number of connections in the server, which is an imperative factor to scale.
HTTP/3 will soon become the third official version of the HTTP protocol. Although very similar to HTTP/2, it offers some significant advancements and changes to the underlying method of utilization. In particular, HTTP/3 is based on a new transport protocol, QUIC, which ensures faster connection establishment between client and server.
Still, HTTP has a fundamental problem for mobile apps (and wireless communication, in general): it fails to cope with the natural instability of wireless links, like WiFi, 3G, 4G or even the upcoming 5G. Learn here why.