HTTP/2

Hypertext Transfer Protocol (HTTP) is a protocol commonly found on the web, facilitating the communication between servers and clients. The first documented HTTP version was released in 1991 as HTTP 0.9 and received no significant updates for years afterward. Some minor updates, HTTP 1.0 and HTTP 1.1, were also released in the 90s and haven't got major updates until HTTP/2 was finally released on 2015.

HTTP/2 comes as an extension to its predecessor and is not expected to replace HTTP 1.1 anytime soon. HTTP/2 changes are designed to maintain interoperability and compatibility with HTTP 1.1.

What's wrong with HTTP 1.1?

HTTP 1.1 was limited to processing only one outstanding request per TCP connection, forcing browsers to use multiple TCP connections to process multiple requests simultaneously.

However, using too many TCP connections in parallel leads to TCP congestion that causes unfair monopolization of network resources. Web browsers using multiple connections to process additional requests occupy a greater share of the available network resources, hence downgrading network performance for other users.

Issuing multiple requests from the browser also causes data duplication on data transmission wires, which in turn requires additional protocols to extract the desired information free of errors at the end nodes.

The web has evolved well beyond the capacity of legacy HTTP-based networking technologies. The core qualities of HTTP 1.1 developed over a decade ago have opened the doors to several embarrassing performance and security loopholes.

HTTP/2 Feature Upgrades

The following features are the upgrades that come with HTTP/2:

gRPC

gRPC is a modern, high-performance RPC framework for building large-scale, distributed applications over RPC (remote procedure call) protocols. It uses HTTP/2 protocol for transport and Protocol Buffers as its interface description language and underlying message format.

HTTP/2 is one of the big reasons why gRPC can perform so well. It reduces latency by enabling full request and response multiplexing using the binary framing layer for data transport. It also allows prioritization of requests, letting more important requests complete more quickly.

HTTP/2 in ASP.NET

HTTP/2 has been supported since the release of ASP.NET Core 2.2. To get the benefit of HTTP/2, both the client and server need to agree on the protocol to use. If one of the parties cannot work with HTTP/2, it will fall back to HTTP 1.x. You can find the list of HTTP/2 support on some servers here.

Tech News

memo REST vs GraphQL vs gRPC (Read the comparison to help you decide which to use in your project)

Brain: "This article outlines each of the advantages, drawbacks, and when to choose between REST, GraphQL, and gRPC. It might be a good read if you want to switch from REST, consider GraphQL to have a dynamic API that the UI, or use gRPC to optimize performance".

memo Dynamic Kubernetes Cluster Scaling at Airbnb (Read the company journey on migrating their container orchestration to Kubernetes)

Brain: "The article lists out the phases of implementing autoscaling in their Kubernetes clusters. From manually scaling a physical instance to providing a customized auto-scaling mechanism that fits into Airbnb’s own use case. It’s interesting how they create a customized solution and give out the solution to the open source platform they are using".

memo Service Monitoring Patterns (Read the types of monitoring patterns written by the engineers in the Hotstar streaming service)

Brain: "It's always useful to learn something from the real-world application. Especially in the case of service monitoring, which I think the learning material is still limited on usually really dependent on the platform that is used. In this article, the engineers in Hotstar streaming service share their decision to use a 3rd party reliability platform called Last9 to aggregate all of their monitoring data into a centralized platform. The features outlined are quite interesting, such as allowing us to view all of the systems in graphs, so we can visualize where the issue lies within our system".

memo Attackers scan 1.6 million WordPress sites for vulnerable plugins (Read the explanation to learn how to secure your WordPress)

Yoga: "The author reports that hackers find a vulnerable plugin that allows them to upload files without authentication to inject malicious script. It's worth reading if you have any WordPress projects".

memo Canidev.tools, a tool that shows what your browser’s dev tools can do (Browse the feature available here)

Brain: "Browsing through the feature list on this site introduces me to several useful features I didn’t know existed. This site lists all of the features of several browser’s dev tools and details how to access them. For example, I learned that you can simply emulate your website's light/dark color scheme by toggling one button in the dev tools without changing your computer’s color scheme".