World of HTTP
A brief introduction of HTTP and how it interacts within web architecture
What is HTTP?
HTTP stands for Hypertext Transfer Protocol. This is the set of rules used in the delivery of web pages from servers to your browser. HTTPS simple means the same protocols are used over an encryption layer for better privacy.
For those who are familiar with the OSI (Open Systems Interconnections) Specification of the Internetworking/Communications, HTTP is an application layer protocol. Which means it has nothing to do with the underlying hardware structures or media. This makes it feasible to improve and upgrade the HTTP specification with increasing bandwidth and etc. You’ll see how that happens soon!
###“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
Client in this definition is the user agent. This could be a browser, program or anything that makes a call to a server using the HTTP protocol. The web server does the delivery or the serving of the requested content. The proxies coordinate the communication between the web servers and user agents. The functionality of the proxies as follows; Caching 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 HTTP 1 or (1.1) simply the above tasks take place peacefully. Yet in 2009 a newer protocol HTTP 2 began to raise.
HTTP 2
HTTP 2 was put forward to address a few limitations that HTTP 1 met with the advancements of networking technologies and bandwidth. 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. HTTP 2 gives a faster and secure (HTTP encryption is enforced in HTTP 2) web experience. You can have a look at this demo by the akamai cloud provider.
HTTP 3 the New Member This is a protocol that is yet to come (sort of). However, I noted that YouTube already uses HTTP 3 in the chrome browser (Not sure about others though!). How do I know? Because I use a plugin to see the HTTP protocol (HTTP/2 and SPDY indicator).
What’s new? The new specification also promises a faster, better, and secure web experience. But how? HTTP 3 intends to simplify the TCP handshake (it is a 3-way handshake, hi, hi again, ok you got my hi, alike.). The bottom line, the connections are established faster using 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, this also guarantees to eliminate the TCP slow start thus enabling instant high speeds. This would really make the 5G go bam! without having to see speeds start increasing from 10Mbps to 1.5Gbps. This is important for gameplay in cases like Stadia.
This might likely be the case of YouTube being super fast and plays HD from start-up without buffering. But don’t quote me on that. The perfect specification might come out close to the end of this year. I hope you enjoyed reading my article on HTTP 3. Though I didn’t go deep into the tech terms and the nitty-gritty details, now you know what might our future internet look like.