Skip to content

Commit c2cefe6

Browse files
Merge pull request #303069 from dlepow/http2
[APIM] HTTP/2 support
2 parents 5816240 + 85c4d8f commit c2cefe6

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

articles/api-management/api-management-gateways-overview.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.service: azure-api-management
88
ms.custom:
99
- build-2024
1010
ms.topic: concept-article
11-
ms.date: 07/11/2024
11+
ms.date: 07/22/2025
1212
ms.author: danlep
1313
---
1414

@@ -79,20 +79,20 @@ The following tables compare features available in the following API Management
7979
| [Virtual network injection](virtual-network-concepts.md) | Developer, Premium | Premium v2 || ✔️<sup>1,2</sup> | ✔️ |
8080
| [Inbound private endpoints](private-endpoint.md) | Developer, Basic, Standard, Premium | Standard v2 ||||
8181
| [Outbound virtual network integration](integrate-vnet-outbound.md) || Standard v2, Premium v2 ||| ✔️ |
82-
| [Availability zones](zone-redundancy.md) | Premium | ✔️<sup>3</sup> || ✔️<sup>1</sup> | ✔️<sup>3</sup> |
82+
| [Availability zones](zone-redundancy.md) | Premium | || ✔️<sup>1</sup> | |
8383
| [Multi-region deployment](api-management-howto-deploy-multi-region.md) | Premium ||| ✔️<sup>1</sup> ||
84-
| [CA root certificates](api-management-howto-ca-certificates.md) for certificate validation | ✔️ ||| ✔️<sup>4</sup> ||
84+
| [CA root certificates](api-management-howto-ca-certificates.md) for certificate validation | ✔️ ||| ✔️<sup>3</sup> ||
8585
| [Managed domain certificates](configure-custom-domain.md?tabs=managed#domain-certificate-options) | Developer, Basic, Standard, Premium || ✔️ |||
8686
| [TLS settings](api-management-howto-manage-protocols-ciphers.md) | ✔️ | ✔️ | ✔️ | ✔️ ||
87-
| **HTTP/2** (Client-to-gateway) | ✔️<sup>5</sup> | ✔️<sup>5</sup> || ✔️ ||
88-
| **HTTP/2** (Gateway-to-backend) || || ✔️ ||
87+
| **HTTP/2** (Client-to-gateway) | ✔️<sup>4</sup> | ✔️<sup>4</sup> || ✔️ ||
88+
| **HTTP/2** (Gateway-to-backend) || ✔️<sup>5</sup> || ✔️<sup>5</sup> ||
8989
| API threat detection with [Defender for APIs](protect-with-defender-for-apis.md) | ✔️ | ✔️ ||||
9090

9191
<sup>1</sup> Depends on how the gateway is deployed, but is the responsibility of the customer.<br/>
9292
<sup>2</sup> Connectivity to the self-hosted gateway v2 [configuration endpoint](self-hosted-gateway-overview.md#fqdn-dependencies) requires DNS resolution of the endpoint hostname.<br/>
93-
<sup>3</sup> Two zones are enabled by default; not configurable.<br/>
94-
<sup>4</sup> CA root certificates for self-hosted gateway are managed separately per gateway<br/>
95-
<sup>5</sup> Client protocol needs to be enabled.
93+
<sup>3</sup> CA root certificates for self-hosted gateway are managed separately per gateway<br/>
94+
<sup>4</sup> Client protocol needs to be enabled.<br/>
95+
<sup>5</sup> Configure using the [forward-request](forward-request-policy.md) policy.
9696

9797
### Backend APIs
9898

articles/api-management/forward-request-policy.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ The `forward-request` policy forwards the incoming request to the backend servic
3535
| timeout | The amount of time in seconds to wait for the HTTP response headers to be returned by the backend service before a timeout error is raised. Minimum value is 0 seconds. Values greater than 240 seconds may not be honored, because the underlying network infrastructure can drop idle connections after this time. Policy expressions are allowed. You can specify either `timeout` or `timeout-ms` but not both. | No | 300 |
3636
| timeout-ms | The amount of time in milliseconds to wait for the HTTP response headers to be returned by the backend service before a timeout error is raised. Minimum value is 0 ms. Policy expressions are allowed. You can specify either `timeout` or `timeout-ms` but not both. | No | N/A |
3737
| continue-timeout | The amount of time in seconds to wait for a `100 Continue` status code to be returned by the backend service before a timeout error is raised. Policy expressions are allowed. | No | N/A |
38-
| http-version | The HTTP spec version to use when sending the HTTP response to the backend service. When using `2or1`, the gateway will favor HTTP /2 over /1, but fall back to HTTP /1 if HTTP /2 doesn't work. | No | 1 |
38+
| http-version | The HTTP protocol version to use when sending the HTTP request to the backend service: <br> - `1`: HTTP/1 <br> - `2`: HTTP/2 <br/> - `2or1`: The gateway favors HTTP/2 over HTTP/1, but falls back to HTTP/1 if HTTP/2 doesn't work.<br/><br/> HTTP/2 outbound is supported in select gateways. See [Usage notes](#usage-notes) for details. | No | 1 |
3939
| follow-redirects | Specifies whether redirects from the backend service are followed by the gateway or returned to the caller. Policy expressions are allowed. | No | `false` |
4040
| buffer-request-body | When set to `true`, request is buffered and will be reused on [retry](retry-policy.md). | No | `false` |
4141
| buffer-response | Affects processing of chunked responses. When set to `false`, each chunk received from the backend is immediately returned to the caller. When set to `true`, chunks are buffered (8 KB, unless end of stream is detected) and only then returned to the caller.<br/><br/>Set to `false` with backends such as those implementing [server-sent events (SSE)](how-to-server-sent-events.md) that require content to be returned or streamed immediately to the caller. Policy expressions aren't allowed. | No | `true` |
@@ -48,11 +48,18 @@ The `forward-request` policy forwards the incoming request to the backend servic
4848
- [**Policy scopes:**](./api-management-howto-policies.md#scopes) global, workspace, product, API, operation
4949
- [**Gateways:**](api-management-gateways-overview.md) classic, v2, consumption, self-hosted, workspace
5050

51+
### Usage notes
52+
53+
* Use the `http-version` attribute to enable the HTTP/2 protocol outbound from the gateway to the backend. Set the attribute to `2or1` or `2`. Currently, HTTP/2 outbound is supported in the self-hosted gateway and in preview in the v2 gateway.
54+
55+
> [!IMPORTANT]
56+
> In the v2 gateway, HTTP/2 is supported inbound to the API Management gateway and outbound from the gateway to the backend but not end-to-end. Currently, the v2 gateway downgrades an incoming HTTP/2 connection to HTTP/1 before forwarding the request to the backend.
57+
5158
## Examples
5259

5360
### Send request to HTTP/2 backend
5461

55-
The following API level policy forwards all API requests to an HTTP/2 backend service.
62+
The following API level policy forwards all API requests to an HTTP/2 backend service. For example, use this policy to forward requests from a self-hosted gateway to a gRPC backend.
5663

5764
```xml
5865
<!-- api level -->
@@ -69,8 +76,6 @@ The following API level policy forwards all API requests to an HTTP/2 backend se
6976
</policies>
7077
```
7178

72-
This is required for HTTP /2 or gRPC workloads and currently only supported in self-hosted gateway. Learn more in our [API gateway overview](api-management-gateways-overview.md).
73-
7479
### Forward request with timeout interval
7580

7681
The following API level policy forwards all API requests to the backend service with a timeout interval of 60 seconds.

0 commit comments

Comments
 (0)