---
title: Setting up your Load Balancer for HTTP/2 or HTTP/3
description: Learn how to configure HTTP/2 and HTTP/3 protocols on your Scaleway Load Balancer to improve performance, security, and user experience for your web applications.
tags: load-balancer http-2 http-3 http2 http3 protocol frontend backend
dates:
  validation: 2025-11-19
---
import image from './assets/scaleway-http-2-3.webp'
import image2 from './assets/scaleway-enable-http3.webp'


## HTTP overview

The **H**yper**t**ext **T**ransfer **P**rotocol (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](https://w3techs.com/technologies/details/ce-http2), and it is supported by [97% of web browsers](https://caniuse.com/?search=http2). 

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 **H**ead **O**f **L**ine (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](https://w3techs.com/technologies/details/ce-http3) 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 TLS | Frontend without TLS | Backend with TLS | Backend without TLS |
|--------|:-------------------:|:----------------------:|:------------------:|:---------------------:|
| HTTP/1 | Yes <Icon name="validate"/>                 | Yes <Icon name="validate"/>                    | Yes <Icon name="validate"/>                | Yes <Icon name="validate"/>                   |
| HTTP/2 | Yes <Icon name="validate"/>                 | No ❌                    | Yes <Icon name="validate"/>                | No ❌                   |
| HTTP/3 | Yes <Icon name="validate"/>                 | No ❌                    | No ❌                | No ❌                   |

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.

<Lightbox image={image} alt="" />

## 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](/load-balancer/how-to/add-certificate/).

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

- The backend has [TLS activated](/load-balancer/reference-content/configuring-backends/#tls-encryption).
- The [backend server](/load-balancer/concepts/#backend-servers) is configured to support HTTP/2.

<Message type="tip">

  The ultimate decision to use HTTP/1 or HTTP/2 is negotiated between the client and the server via the **A**pplication-**L**ayer **P**rotocol **N**egotiation, or [ALPN](https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation). In principal, the highest possible protocol is used where possible (i.e. HTTP/2 is favored over HTTP/1 when conditions are met).

</Message>

## 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](/load-balancer/how-to/add-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](/load-balancer/how-to/manage-frontends-and-backends/#how-to-create-and-add-frontends-to-a-load-balancer) or [editing an existing frontend](/load-balancer/how-to/manage-frontends-and-backends/#how-to-edit-frontends)
 - Under **Configure backend**, ensure that you choose a backend using HTTP protocol.
 - Under **Advanced Settings**, select **Enable HTTP/3**.

 <Lightbox image={image2} alt="" />