CONNECT request method
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die HTTP-Methode CONNECT fordert einen Proxy auf, einen HTTP-Tunnel zu einem Zielserver aufzubauen und bei Erfolg Daten in beide Richtungen unverändert weiterzuleiten, bis der Tunnel geschlossen wird.
Das Anfrageziel ist bei dieser Methode einzigartig: Es besteht nur aus dem Host und der Portnummer des Tunnelziels, getrennt durch einen Doppelpunkt (Einzelheiten finden Sie unter Syntax). Jeder 2XX-Erfolgsstatuscode bedeutet, dass der Proxy in den „Tunnelmodus“ wechselt. Alle Daten im Body der erfolgreichen Antwort stammen von dem Server, der durch das Anfrageziel angegeben wird.
Wenn sich eine Website hinter einem Proxy befindet und Netzwerkregeln vorschreiben, dass der gesamte externe Datenverkehr über den Proxy laufen muss, können Sie mit der Methode CONNECT eine TLS-Verbindung (HTTPS) zu dieser Website herstellen:
- Der Client fordert den Proxy auf, die TCP-Verbindung zum gewünschten Ziel zu tunneln.
- Der Proxyserver stellt im Auftrag des Clients eine sichere Verbindung zum Server her.
- Sobald die Verbindung hergestellt ist, leitet der Proxyserver den TCP-Datenstrom weiterhin vom und zum Client weiter.
Ein HTTP-Tunnel ermöglicht nicht nur den sicheren Zugriff auf Websites hinter Proxys, sondern auch die Übertragung von Datenverkehr, der andernfalls eingeschränkt wäre (etwa SSH oder FTP), über das HTTP(S)-Protokoll.
CONNECT ist eine Hop-by-Hop-Methode. Das bedeutet, dass Proxys die CONNECT-Anfrage nur weiterleiten, wenn sich vor dem Ursprungsserver ein weiterer eingehender Proxy befindet, da die meisten Ursprungsserver CONNECT nicht implementieren.
Warnung:
Wenn Sie einen Proxy betreiben, der CONNECT unterstützt, beschränken Sie dessen Verwendung auf bekannte Ports oder eine konfigurierbare Liste sicherer Anfrageziele.
Der Aufbau eines Tunnels zu beliebigen Servern birgt erhebliche Risiken, insbesondere wenn das Ziel ein bekannter oder reservierter TCP-Port ist, der nicht für Web-Datenverkehr vorgesehen ist.
Ein zu großzügig konfigurierter Proxy könnte beispielsweise missbraucht werden, um SMTP-Datenverkehr weiterzuleiten und so Spam-E-Mails zu versenden.
| Anfrage hat einen Body | Nein |
|---|---|
| Erfolgreiche Antwort hat einen Body | Nein |
| Sicher | Nein |
| Idempotent | Nein |
| Cachefähig | Nein |
| In HTML-Formularen zulässig | Nein |
Syntax
CONNECT <host>:<port> HTTP/1.1
Beispiele
>Proxy-Authentifizierung
Eine Anfrage an einen Proxyserver, der für den Aufbau eines Tunnels eine Authentifizierung verlangt, sieht wie folgt aus.
Weitere Informationen finden Sie unter dem Header Proxy-Authorization.
CONNECT server.example.com:80 HTTP/1.1
Host: server.example.com:80
Proxy-Authorization: basic aGVsbG86d29ybGQ=
Spezifikationen
| Spezifikation |
|---|
| HTTP Semantics> # CONNECT> |
Browser-Kompatibilität
Siehe auch
- HTTP-Anfragemethoden
- HTTP-Antwortstatuscodes
- HTTP-Header
- Glossareintrag Proxyserver
- Header
Proxy-Authorization