

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Konfigurieren Sie HTTP-Clients in der AWS SDK for Java 2.x
<a name="http-configuration"></a>

Sie können den HTTP-Client ändern, der für Ihren Service-Client verwendet werden soll, sowie die Standardkonfiguration für HTTP-Clients mit dem ändern AWS SDK for Java 2.x. In diesem Abschnitt werden HTTP-Clients und Einstellungen für das SDK beschrieben.

## Im SDK for Java verfügbare HTTP-Clients
<a name="http-clients-available"></a>

### Synchrone Clients
<a name="http-config-sync"></a>

Synchrone HTTP-Clients im SDK for Java implementieren die [SdkHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/SdkHttpClient.html)Schnittstelle. Ein synchroner Dienstclient, wie der `S3Client` oder der`DynamoDbClient`, erfordert die Verwendung eines synchronen HTTP-Clients. Der AWS SDK für Java bietet drei synchrone HTTP-Clients.

**ApacheHttpClient (Standard)**  
[ApacheHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache/ApacheHttpClient.html)ist der Standard-HTTP-Client für synchrone Service-Clients. Hinweise zur Konfiguration von finden Sie `ApacheHttpClient` unter[Den Apache-basierten HTTP-Client konfigurieren](http-configuration-apache.md). 

**AwsCrtHttpClient**  
[AwsCrtHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/AwsCrtHttpClient.html)bietet hohen Durchsatz und blockierungsfreie I/O. Es basiert auf dem AWS Common Runtime (CRT) Http Client. Hinweise zur Konfiguration `AwsCrtHttpClient` und Verwendung mit Service-Clients finden Sie unter[AWS CRT-basierte HTTP-Clients konfigurieren](http-configuration-crt.md).

**UrlConnectionHttpClient**  
Um die Anzahl der von Ihrer Anwendung verwendeten JAR-Dateien und Bibliotheken von Drittanbietern zu minimieren, können Sie die verwenden [UrlConnectionHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/urlconnection/UrlConnectionHttpClient.html). Hinweise zur Konfiguration von finden `UrlConnectionHttpClient` Sie unter[Den URLConnection basierten HTTP-Client konfigurieren](http-configuration-url.md).

**Apache 5 HttpClient**  
[Apache5 HttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache5/Apache5HttpClient.html) *ist eine aktualisierte Version davon, die auf dem Apache `ApacheHttpClient` 5.x basiert. HttpClient Version 5.x* ist die Version, die aktiv von Apache betreut wird. Sie verbessert die vorherige Version, `ApacheHttpClient` indem sie die Kompatibilität mit dem modernen Java-Ökosystem bietet, einschließlich virtueller Thread-Unterstützung für Java 21 und verbesserter Logging-Flexibilität durch SLF4 J., der in einer future Version des AWS SDK for Java 2.x `ApacheHttpClient` als standardmäßigen synchronen Client ersetzt `Apache5HttpClient` wird. Sie verfügt über eine identische API und identische Funktionen, sodass sie sich ideal als Drop-In-Ersatz eignet. Informationen zur Konfiguration von finden Sie `Apache5HttpClient` unter[Konfigurieren Sie den Apache 5.x-basierten HTTP-Client](http-configuration-apache5.md).

### Asynchrone Clients
<a name="http-config-async"></a>

Asynchrone HTTP-Clients im SDK for Java implementieren die [SdkAsyncHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/async/SdkAsyncHttpClient.html)Schnittstelle. Ein asynchroner Dienstclient, wie der `S3AsyncClient` oder der`DynamoDbAsyncClient`, erfordert die Verwendung eines asynchronen HTTP-Clients. Der AWS SDK für Java bietet zwei asynchrone HTTP-Clients.

**NettyNioAsyncHttpClient (Standard)**  
[NettyNioAsyncHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/nio/netty/NettyNioAsyncHttpClient.html)ist der Standard-HTTP-Client, der von asynchronen Clients verwendet wird. Hinweise zur Konfiguration von finden Sie `NettyNioAsyncHttpClient` unter[Den Netty-basierten HTTP-Client konfigurieren](http-configuration-netty.md).

**AwsCrtAsyncHttpClient**  
Der [AwsCrtAsyncHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/AwsCrtAsyncHttpClient.html)basiert auf dem AWS Common Runtime (CRT) -HTTP-Client. Hinweise zur Konfiguration von finden Sie `AwsCrtAsyncHttpClient` unter[AWS CRT-basierte HTTP-Clients konfigurieren](http-configuration-crt.md). 

## Empfehlungen für HTTP-Clients
<a name="http-clients-recommend"></a>

Bei der Auswahl einer HTTP-Client-Implementierung spielen mehrere Faktoren eine Rolle. Verwenden Sie die folgenden Informationen als Entscheidungshilfe.

### HTTP-Client-Vergleich
<a name="http-clients-recommend-compare"></a>

Die folgende Tabelle enthält detaillierte Informationen für jeden HTTP-Client. 


| HTTP-Client | Synchronisieren oder asynchron | Wann sollte dies verwendet werden? | Einschränkung/Nachteil | 
| --- | --- | --- | --- | 
|  Apache-basierter HTTP-Client *(Standard-Synchronisierungs-HTTP-Client)* | Synchronisierung | Verwenden Sie ihn, wenn Sie eine niedrige Latenz einem hohen Durchsatz vorziehen  | Langsamere Startzeit im Vergleich zu anderen HTTP-Clients | 
| URLConnection-basierter HTTP-Client | Synchronisierung | Verwenden Sie es, wenn Sie unbedingt die Abhängigkeiten von Drittanbietern einschränken möchten | • Unterstützt nicht die HTTP-PATCH-Methode, die für einige Operationen APIs wie Amazon APIGateway Update erforderlich ist<br />• Unterstützt kein konfigurierbares Timeout für Verbindungen im Leerlauf. Einzelheiten finden [Sie unter Konfiguration des URLConnection basierten HTTP-Clients](http-configuration-url.md). | 
| AWS CRT-basierter Sync-HTTP-Client 1  | Synchronisierung | • Verwenden Sie es, wenn Ihre Anwendung in läuft AWS Lambda<br />• Verwenden Sie es, wenn Sie einen hohen Durchsatz einer niedrigen Latenz vorziehen<br />• Verwenden Sie es, wenn Sie SDK-Clients synchronisieren möchten | Die folgenden Java-Systemeigenschaften werden nicht unterstützt:[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/sdk-for-java/latest/developer-guide/http-configuration.html) | 
|  Netty-basierter HTTP-Client *(standardmäßiger asynchroner HTTP-Client)* | Asynchron | • Verwenden Sie es, wenn Ihre Anwendung auf Java-Systemeigenschaften für die TLS-Konfiguration angewiesen ist (z. B. `javax.net.ssl.keyStore` | Langsamere Startzeit im Vergleich zu anderen HTTP-Clients | 
|  AWS CRT-basierter asynchroner HTTP-Client 1  | Asynchron | • Verwenden Sie es, wenn Ihre Anwendung in läuft AWS Lambda<br />• Verwenden Sie es, wenn Sie einen hohen Durchsatz einer niedrigen Latenz vorziehen• Verwenden Sie es, wenn Sie asynchrone SDK-Clients bevorzugen | Die folgenden Java-Systemeigenschaften werden nicht unterstützt:[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/sdk-for-java/latest/developer-guide/http-configuration.html) | 

1 Aufgrund ihrer zusätzlichen Vorteile empfehlen wir, wenn möglich die AWS CRT-basierten HTTP-Clients zu verwenden.

## Standardeinstellungen für die intelligente Konfiguration
<a name="http-config-smart-defaults"></a>

Die AWS SDK for Java 2.x (Version 2.17.102 oder höher) bietet eine Funktion für intelligente Standardeinstellungen für Konfigurationen. Diese Funktion optimiert zwei HTTP-Client-Eigenschaften zusammen mit anderen Eigenschaften, die den HTTP-Client nicht beeinflussen. 

Die Standardeinstellungen der intelligenten Konfiguration legen sinnvolle Werte für die `tlsNegotiationTimeoutInMillis` Eigenschaften `connectTimeoutInMillis` und fest, die auf einem von Ihnen angegebenen Standardmoduswert basieren. Sie wählen den Standardmoduswert auf der Grundlage der Eigenschaften Ihrer Anwendung. 

Weitere Informationen zu den Standardeinstellungen für intelligente Konfigurationen und zur Auswahl des Standardmoduswerts, der für Ihre Anwendungen am besten geeignet ist, finden Sie im Referenzhandbuch [AWS SDKs und im Tools-Referenzhandbuch](https://docs.aws.amazon.com/sdkref/latest/guide/feature-smart-config-defaults.html).

Im Folgenden finden Sie vier Möglichkeiten, den Standardmodus für Ihre Anwendung festzulegen.

------
#### [ Service client ]

Verwenden Sie den Service Client Builder, um den Standardmodus direkt auf dem Service Client zu konfigurieren. Im folgenden Beispiel wird der Standardmodus `auto` für den auf festgelegt. `DynamoDbClient`

```
DynamoDbClient ddbClient = DynamoDbClient.builder()
                            .defaultsMode(DefaultsMode.AUTO)
                            .build();
```

------
#### [ System property ]

Sie können die `aws.defaultsMode` Systemeigenschaft verwenden, um den Standardmodus anzugeben. Wenn Sie die Systemeigenschaft in Java festlegen, müssen Sie die Eigenschaft festlegen, bevor Sie einen Service-Client initialisieren.

Das folgende Beispiel zeigt Ihnen, wie Sie den Standardmodus so einstellen, dass er eine in `auto` Java festgelegte Systemeigenschaft verwendet.

```
System.setProperty("aws.defaultsMode", "auto");
```

Das folgende Beispiel zeigt, wie Sie den Standardmodus `auto` mithilfe einer `-D` Option des Befehls auf „Standardmodus“ festlegen. `java`

```
java -Daws.defaultsMode=auto
```

------
#### [ Environment variable ]

Geben Sie einen Wert für die Umgebungsvariable ein`AWS_DEFAULTS_MODE`, um den Standardmodus für Ihre Anwendung auszuwählen. 

Die folgenden Informationen zeigen den Befehl, der ausgeführt werden muss, um den Wert für den Standardmodus auf die `auto` Verwendung einer Umgebungsvariablen festzulegen.


| Betriebssystem | Befehl zum Setzen von Umgebungsvariablen | 
| --- | --- | 
| Linux, macOS oder Unix | export AWS\_DEFAULTS\_MODE=auto | 
| Windows | set AWS\_DEFAULTS\_MODE=auto | 

------
#### [ AWS config file ]

Sie können der gemeinsam genutzten AWS `config` Datei eine `defaults_mode` Konfigurationseigenschaft hinzufügen, wie das folgende Beispiel zeigt.

```
[default]
defaults_mode = auto
```

------

Wenn Sie den Standardmodus global mit der Systemeigenschaft, der Umgebungsvariablen oder der AWS Konfigurationsdatei festlegen, können Sie die Einstellungen beim Erstellen eines HTTP-Clients überschreiben. 

Wenn Sie mit `httpClientBuilder()` dieser Methode einen HTTP-Client erstellen, gelten die Einstellungen nur für die Instanz, die Sie gerade erstellen. Ein Beispiel dafür wird [hier](http-configuration-netty.md#http-config-netty-one-client) gezeigt. Der Netty-basierte HTTP-Client in diesem Beispiel überschreibt alle global für und festgelegten Standardmoduswerte. `connectTimeoutInMillis` `tlsNegotiationTimeoutInMillis`