NavigationContentFooter
Jump toSuggest an edit

Setting up your Load Balancer for HTTP/2 or HTTP/3

Reviewed on 05 November 2024

HTTP overview

The Hypertext Transfer Protocol (HTTP) is an application layer protocol, providing the foundations of data exchange and transfer on the web. As a request-response protocol, the client (usually a web browser) requests certain data (e.g. the files needed to display a webpage) from a server, which transfers the requested data in response.

HTTP/1

Development of the first version of the HTTP protocol, HTTP/1, began in 1989. The first standardized version, HTTP1.1 was released in 1997, bringing together many of the features that would characterize HTTP/1 for the next 15 years. These include text-based request/response protocol, use of headers, requests/responses over a TCP connection, and cache control.

HTTP/2

HTTP/2 was released in 2015. It represents a more efficient version of HTTP, moving from a text based protocol to a binary protocol. This is easier to parse for clients and servers, helps avoid errors and allows for multiplexing. Over 40% of websites now use HTTP/2/, and it is supported by 97% of web browsers.

HTTP/2 improves upon HTTP/1’s performance in many ways, including but not limited to:

  • Increased efficiency via use of binary framing. HTTP/1 uses text-based data transfer, which can be long, bandwidth-heavy and error-prone. HTTP/2 uses binary message framing, which is more compact and efficient so easier to parse, and provokes fewer errors.
  • Solves blocking problem via multiplexing: HTTP/1 has a Head Of Line (HOL) blocking problem, where over a single TCP connection the browser must wait for its existing requests to be completely answered before it can make a new request. HTTP/2 solves this with multiplexing: the ability to make multiple parallel requests over a single TCP connection.
  • Reduced overhead with header compression: HTTP/2 uses header compression to reduce the overhead caused by TCP’s slow-start mechanism.

HTTP/3

HTTP/3 was published in 2022. It uses QUIC as its underlying transport protocol, in contrast with HTTP/1 and HTTP/2 which use TCP. QUIC helps to solve issues including the potential interruption in service when a user switches from a WiFi network to a mobile network. HTTP/3’s other advantages include faster establishment of a connection and more thorough encryption. 25% of websites use HTTP/3 and is supported by most major web browsers, representing over 75% of users.

HTTP version support with Scaleway Load Balancers

Backends and frontends of Scaleway Load Balancers support HTTP/1, HTTP/2 and HTTP/3 differently, depending on their TLS configuration:

Frontend with TLSFrontend without TLSBackend with TLSBackend without TLS
HTTP/1«Validate Icon»«Validate Icon»«Validate Icon»«Validate Icon»
HTTP/2«Validate Icon»«Validate Icon»
HTTP/3«Validate Icon»

In brief:

  • Scaleway Load Balancers support HTTP/2 connections to frontends with TLS, and HTTP/2 connections from backends with TLS to backend servers.
  • Scaleway Load Balancers support HTTP/3 connections to frontends with TLS, but do not support HTTP/3 connections from backends to backend servers.

Configuring your Load Balancer for HTTP/2

HTTP/2 is supported by default on frontends meeting the following conditions:

  • The frontend is attached to an HTTP backend
  • The frontend has an SSL/TLS certificate.

HTTP/2 is supported by default on backends meeting the following conditions:

  • The backend has TLS activated.
  • The backend server is configured to support HTTP/2.
Tip

The ultimate decision to use HTTP/1 or HTTP/2 is negotiated between the client and the server via the Application-Layer Protocol Negotiation, or ALPN. In principal, the highest possible protocol is used where possible (i.e. HTTP/2 is favored over HTTP/1 when conditions are met).

Configuring your Load Balancer for HTTP/3

HTTP/3 is supported on frontends meeting the following conditions:

  • The frontend is attached to an HTTP backend
  • The frontend has an SSL/TLS certificate.
  • HTTP/3 has been activated on the frontend (see below).

HTTP/3 is not supported on backends in any case.

To create a frontend that allows HTTP/3 connections, follow the instructions for adding a frontend to your Load Balancer or editing an existing frontend

  • Under Configure backend, ensure that you choose a backend using HTTP protocol.
  • Under Advanced Settings, select Enable HTTP/3.
Was this page helpful?
API DocsScaleway consoleDedibox consoleScaleway LearningScaleway.comPricingBlogCareers
© 2023-2024 – Scaleway