What is HTTP?
HTTP stands for Hypertext Transfer Protocol. This is the protocol or set of rules that used by the system to delivery of web pages from servers to your browser. The S on HTTPS is short for secure, so HTTPS simply means the same protocols are used over an encryption layer for better privacy.
For people on web design and web development circle who is familiar with the OSI (Open Systems Interconnections) Specification of the Internetworking/Communications, HTTP is an application layer protocol. That means it has nothing to do with the underlying hardware structures or media. So, by increasing bandwidth, the HTTP specification could be improved and upgraded.
“HTTP is a client-server protocol: requests are sent by one entity, the user-agent (or a proxy on behalf of it). Most of the time the user-agent is a Web browser, but it can be anything, for example a robot that crawls the Web to populate and maintain a search engine index.”
Quoted from Mozilla
By this definition, you can conclude that user agent is the Client. User agent could be a browser, program or anything that makes a call to a server using the HTTP protocol. After the call was made, web server delivers the requested content. The communication between the web servers and user agents is coordinated by proxies.
Proxies have functionality as follows:
- Filtering (Hiding adult content or blocking content based on region)
- Load balancing (Direct requests to vacant servers)
- Authentication (Allow users to communicate with different servers)
- Logging (HTTP logging is common for anomaly detection and etc)
In the early days of HTTP 1 tasks above take place peacefully. Yet in 2009 a newer protocol HTTP 2 began to raise.
With the advancements of networking technologies and bandwidth, HTTP 2 was released to address a few limitations of HTTP 1.
- Need to Perform Multiplexing: This enables concurrent requests via the same TCP connection. Helps to load resources concurrently.
- Allow browsers to prioritize what content to fetch first to load the web page faster. Or to improve the perceived speed of a page load.
- Reducing the weight of the HTTP header.
- Server push that enables servers to push resources before they are asked by the web browsers. This makes the roundtrip taken to parse HTML and re-fetch content within HTML much shorter.
In summary, HTTP 2 gives a faster and more secure web browsing experience.
Welcoming the New Member: HTTP 3
The new specification also promises a faster, better, and secure web experience. But how?
HTTP 3 intends to simplify the TCP handshake with the QUIC protocol, which is something new as well.
The enhanced connection establishment promises better connection migration that occurs between wifi connections and mobile networks and etc. Note that this isn’t the connection migration you see between routers in the same network. Much complicated and sophisticated.
Lastly, QUIC tries to increase the congestion window exponential in order to upgrade the TCP slow start. Which means high speeds achieved faster. In cases like Stadia and UHD video streaming, this will be an important upgrade.