

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.

# HTTP-Header und Application Load Balancer
<a name="x-forwarded-headers"></a>

Die HTTP-Anforderungen und -Antworten verwenden Header-Felder, um Informationen über HTTP-Nachrichten zu senden. HTTP-Header werden automatisch hinzugefügt. Header-Felder sind durch einen Doppelpunkt getrennte Name/Wert-Paare, die durch eine Zeilenumschaltung und einen Zeilenvorschub getrennt sind. Ein Standardsatz von HTTP-Header-Feldern ist in RFC 2616, [Nachrichten-Header](https://datatracker.ietf.org/doc/html/rfc2616) definiert. Es sind auch Nicht-Standard-HTTP-Header verfügbar, die automatisch hinzugefügt und weithin von den Anwendungen verwendet werden. Einige der Nicht-Standard-HTTP-Header besitzen ein `X-Forwarded`-Präfix. Application Load Balancer unterstützen die folgenden `X-Forwarded`-Header.

Weitere Informationen zu HTTP-Verbindungen finden Sie unter [Weiterleitung von Anforderungen](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#request-routing) im *Benutzerhandbuch zu Elastic Load Balancing*.

**Topics**
+ [X-Forwarded-For](#x-forwarded-for)
+ [X-Forwarded-Proto](#x-forwarded-proto)
+ [X-Forwarded-Port](#x-forwarded-port)

## X-Forwarded-For
<a name="x-forwarded-for"></a>

Der `X-Forwarded-For`-Anforderungs-Header hilft Ihnen, die IP-Adresse eines Clients zu identifizieren, wenn Sie einen HTTP- oder HTTPS-Load Balancer verwenden. Da Load Balancer Datenverkehr zwischen Clients und Servern abfangen, enthalten Ihre Server-Zugriffsprotokolle nur die IP-Adresse des Load Balancers. Verwenden Sie das `routing.http.xff_header_processing.mode`-Attribut, um die IP-Adresse des Clients anzuzeigen. Dieses Attribut ermöglicht das Ändern, Beibehalten oder Entfernen der `X-Forwarded-For`-Header in der HTTP-Anforderung, bevor der Application Load Balancer die Anforderung an das Ziel sendet. Die möglichen Werte für dieses Attribut sind `append`, `preserve` und `remove`. Der Standardwert für dieses Attribut ist `append`.

**Wichtig**  
Der `X-Forwarded-For` Header sollte aufgrund potenzieller Sicherheitsrisiken mit Vorsicht verwendet werden. Die Einträge können nur dann als vertrauenswürdig angesehen werden, wenn sie von Systemen hinzugefügt werden, die innerhalb des Netzwerks ordnungsgemäß gesichert sind.

**Topics**
+ [Anfügen](#x-forwarded-for-append)
+ [Beibehalten](#x-forwarded-for-preserve)
+ [Remove](#x-forwarded-for-remove)

### Anfügen
<a name="x-forwarded-for-append"></a>

Der Application Load Balancer speichert die IP-Adresse des Clients standardmäßig im `X-Forwarded-For`-Anforderungs-Header und übergibt den Header an Ihren Server. Wenn der `X-Forwarded-For`-Anforderungsheader nicht in der ursprünglichen Anforderung enthalten ist, erstellt der Load Balancer einen Header mit der Client-IP-Adresse als Anforderungswert. Andernfalls hängt der Load Balancer die Client-IP-Adresse an den vorhandenen Header an und leitet den Header dann an Ihren Server weiter. Der `X-Forwarded-For`-Anforderungsheader kann mehrere IP-Adressen enthalten, die durch Kommas getrennt sind.

Der `X-Forwarded-For`-Anforderungs-Header besitzt das folgende Format:

```
X-Forwarded-For: client-ip-address
```

Nachfolgend finden Sie ein Beispiel für einen `X-Forwarded-For`-Anforderungs-Header für einen Client mit der IP-Adresse `203.0.113.7`.

```
X-Forwarded-For: 203.0.113.7
```

Im Folgenden finden Sie ein Beispiel für einen `X-Forwarded-For` Anforderungsheader für einen Client mit der IPv6 Adresse. `2001:DB8::21f:5bff:febf:ce22:8a2e`

```
X-Forwarded-For: 2001:DB8::21f:5bff:febf:ce22:8a2e
```

Wenn das Attribut zur Beibehaltung des Client-Ports (`routing.http.xff_client_port.enabled`) im Load Balancer aktiviert ist, enthält der `X-Forwarded-For`-Anforderungsheader die an die `client-port-number` angehängte `client-ip-address`, durch einen Doppelpunkt getrennt. Der Header nimmt dann das folgende Format an:

```
IPv4 -- X-Forwarded-For: client-ip-address:client-port-number
```

```
IPv6 -- X-Forwarded-For: [client-ip-address]:client-port-number
```

Beachten Sie IPv6 nämlich, dass der Load Balancer, wenn er den `client-ip-address` an den vorhandenen Header anhängt, die Adresse in eckige Klammern setzt.

Im Folgenden finden Sie ein Beispiel für einen `X-Forwarded-For` Anforderungsheader für einen Client mit der IPv4 Adresse `12.34.56.78` und der Portnummer von. `8080`

```
X-Forwarded-For: 12.34.56.78:8080
```

Im Folgenden finden Sie ein Beispiel für einen `X-Forwarded-For` Anforderungsheader für einen Client mit der IPv6 Adresse `2001:db8:85a3:8d3:1319:8a2e:370:7348` und der Portnummer von`8080`.

```
X-Forwarded-For: [2001:db8:85a3:8d3:1319:8a2e:370:7348]:8080
```

### Beibehalten
<a name="x-forwarded-for-preserve"></a>

Der `preserve`-Modus im Attribut stellt sicher, dass der `X-Forwarded-For`-Header in der HTTP-Anforderung in keiner Weise geändert wird, bevor er an Ziele gesendet wird.

### Remove
<a name="x-forwarded-for-remove"></a>

Der `remove`-Modus im Attribut entfernt den `X-Forwarded-For`-Header in der HTTP-Anforderung, bevor er an Ziele gesendet wird.

Wenn Sie das Attribut zur Beibehaltung des Client-Ports (`routing.http.xff_client_port.enabled`) aktivieren und auch `preserve` oder `remove` für das `routing.http.xff_header_processing.mode` Attribut auswählen, überschreibt der Application Load Balancer das Attribut zur Erhaltung des Client-Ports. Je nach ausgewähltem Modus bleibt der `X-Forwarded-For`-Header unverändert oder wird entfernt, bevor er an die Ziele gesendet wird.

Die folgende Tabelle zeigt Beispiele für den `X-Forwarded-For`-Header, den das Ziel erhält, wenn Sie entweder den Modus `append`, `preserve` oder den Modus `remove` auswählen. In diesem Beispiel lautet die IP-Adresse des letzten Hops `127.0.0.1`. 


| Beschreibung der Anforderung | Beispielanforderung | append | preserve | remove | 
| --- | --- | --- | --- | --- | 
| Anforderung wird ohne XFF-Header gesendet | GET /index.html HTTP/1.1 Host: example.com | X-Forwarded-For: 127.0.0.1 | Nicht vorhanden | Nicht vorhanden | 
| Anforderung wird mit einem XFF-Header und einer Client-IP-Adresse gesendet. | GET /index.html HTTP/1.1 Host: example.com X-Forwarded-For: 127.0.0.4 | X-Forwarded-For: 127.0.0.4, 127.0.0.1 | X-Forwarded-For: 127.0.0.4 | Nicht vorhanden | 
| Anforderung wird mit einem XFF-Header mit mehreren Client-IP-Adressen gesendet. | GET /index.html HTTP/1.1 Host: example.com X-Forwarded-For: 127.0.0.4, 127.0.0.8 | X-Forwarded-For: 127.0.0.4, 127.0.0.8, 127.0.0.1 | X-Forwarded-For: 127.0.0.4, 127.0.0.8 | Nicht vorhanden | 

------
#### [ Console ]

**Um den X-Forwarded-For Header zu verwalten**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Wählen Sie im Navigationsbereich **Load Balancers** aus.

1. Wählen Sie den Load Balancer aus.

1. Klicken Sie auf der Registerkarte **Attribute** auf **Bearbeiten**.

1. Wählen Sie im Abschnitt **Verkehrskonfiguration** unter **Paketverarbeitung** für **X-Forwarded-For Header** die Optionen **Anhängen** (Standard), **Beibehalten** oder **Entfernen aus**.

1. Wählen Sie **Änderungen speichern ** aus.

------
#### [ AWS CLI ]

**Um den Header zu verwalten X-Forwarded-For**  
Verwenden Sie den Befehl [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html) mit dem Attribut `routing.http.xff_header_processing.mode`. Die möglichen Werte sind `append`, `preserve` und `remove`. Der Standardwert ist `append`.

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn load-balancer-arn \
    --attributes "Key=routing.http.xff_header_processing.mode,Value=preserve"
```

------
#### [ CloudFormation ]

**Um den X-Forwarded-For Header zu verwalten**  
Aktualisieren Sie die [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html)Ressource so, dass sie das `routing.http.xff_header_processing.mode` Attribut enthält. Die möglichen Werte sind `append`, `preserve` und `remove`. Der Standardwert ist `append`.

```
Resources:
  myLoadBalancer:
    Type: AWS::ElasticLoadBalancingV2::LoadBalancer
    Properties:
      Name: my-alb
      Type: application
      Scheme: internal
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
      LoadBalancerAttributes: 
        - Key: "routing.http.xff_header_processing.mode"
          Value: "preserve"
```

------

## X-Forwarded-Proto
<a name="x-forwarded-proto"></a>

Der `X-Forwarded-Proto`-Anforderungs-Header hilft Ihnen, das Protokoll (HTTP oder HTTPS) zu identifizieren, das ein Client für die Verbindung zu Ihrem Load Balancer verwendet hat. Ihre Server-Zugriffsprotokolle enthalten nur das Protokoll zwischen dem Server und dem Load Balancer. Sie enthalten keine Informationen über das Protokoll zwischen dem Client und dem Load Balancer. Verwenden Sie den `X-Forwarded-Proto`-Anforderungs-Header, um das Protokoll zwischen dem Client und dem Load Balancer zu überprüfen. Elastic Load Balancing speichert das Protokoll zwischen dem Client und dem Load Balancer im `X-Forwarded-Proto`-Anforderungs-Header und übergibt den Header an den Server.

Ihre Anwendung oder Website kann das im `X-Forwarded-Proto`-Anforderungs-Header gespeicherte Protokoll verwenden, um eine Rückmeldung auszugeben, die auf die entsprechende URL umleitet.

Der `X-Forwarded-Proto`-Anforderungs-Header besitzt das folgende Format:

```
X-Forwarded-Proto: originatingProtocol
```

Das folgende Beispiel enthält einen `X-Forwarded-Proto`-Anforderungs-Header für eine Anforderung, die vom Client als HTTPS-Anforderung ausgegeben wurde:

```
X-Forwarded-Proto: https
```

## X-Forwarded-Port
<a name="x-forwarded-port"></a>

Mit dem `X-Forwarded-Port`-Anforderungs-Header können Sie den Zielport identifizieren, den der Client für die Verbindung mit dem Load Balancer verwendet hat.