CONNECT
Die CONNECT
HTTP-Methode fordert, dass ein Proxy einen HTTP-Tunnel zu einem Zielserver herstellt und, falls erfolgreich, Daten in beide Richtungen blind weiterleitet, bis der Tunnel geschlossen wird.
Das Ziel der Anfrage ist bei dieser Methode einzigartig, da es nur aus dem Host und der Portnummer des Zielservers des Tunnels besteht, getrennt durch einen Doppelpunkt (siehe Syntax für Details). Jeder 2XX erfolgreiche Antwort-Statuscode bedeutet, dass der Proxy in den "Tunnelmodus" wechselt und alle Daten im erfolgreichen Antwortkörper von dem Server stammen, der durch das Anforderungsziel identifiziert wird.
Wenn eine Website hinter einem Proxy steht und es per Netzwerkregeln erzwungen wird, dass der gesamte externe Verkehr durch den Proxy geleitet werden muss, ermöglicht die CONNECT
-Methode das Herstellen einer TLS (HTTPS)-Verbindung mit dieser Website:
- Der Client fordert den Proxy auf, die TCP-Verbindung zum gewünschten Ziel zu tunneln.
- Der Proxy-Server stellt im Namen des Clients eine sichere Verbindung zum Server her.
- Sobald die Verbindung hergestellt ist, leitet der Proxy-Server den TCP-Datenstrom weiterhin zum und vom Client.
Neben der Ermöglichung des sicheren Zugriffs auf Websites hinter Proxys bietet ein HTTP-Tunnel eine Möglichkeit, Verkehr zuzulassen, der ansonsten eingeschränkt wäre (SSH oder FTP) über das HTTP(S)-Protokoll.
CONNECT
ist eine hop-by-hop Methode, was bedeutet, dass Proxys die CONNECT
-Anfrage nur weiterleiten, wenn ein weiterer eingehender Proxy vor dem Ursprungsserver existiert, da die meisten Ursprungsserver CONNECT
nicht implementieren.
Warnung: Wenn Sie einen Proxy betreiben, der CONNECT
unterstützt, beschränken Sie seine Nutzung auf eine Auswahl bekannter Ports oder eine konfigurierbare Liste sicherer Anforderungsziele.
Es gibt erhebliche Risiken beim Einrichten eines Tunnels zu beliebigen Servern, insbesondere wenn das Ziel ein bekannter oder vorbehaltener TCP-Port ist, der nicht für Webverkehr bestimmt ist.
Ein locker konfigurierter Proxy kann missbraucht werden, um Verkehr wie SMTP weiterzuleiten, um beispielsweise Spam-E-Mails zu versenden.
Anfrage hat einen Body | Nein |
---|---|
Erfolgreiche Antwort hat einen Body | Nein |
Sicher | Nein |
Idempotent | Nein |
Cacheable | Nein |
Erlaubt in HTML-Formularen | Nein |
Syntax
Beispiele
Proxy-Authentifizierung
Eine Anfrage für Proxy-Server, die zur Erstellung eines Tunnels eine Authentifizierung erfordern, sieht folgendermaßen aus.
Siehe den Proxy-Authorization
Header für weitere Informationen.
CONNECT server.example.com:80 HTTP/1.1
Host: server.example.com:80
Proxy-Authorization: basic aGVsbG86d29ybGQ=
Spezifikationen
Specification |
---|
HTTP Semantics # CONNECT |
Browser-Kompatibilität
BCD tables only load in the browser