2. Client-Konfiguration
- Client-Konfiguration
HTTP-Clients werden so konfiguriert, dass sie einen UDP-Proxy mit einem URI-Template [TEMPLATE] verwenden, das die Variablen "target_host" und "target_port" enthält. Beispiele sind unten aufgeführt:
https://example.org/.well-known/masque/udp/\{target_host\}/\{target_port\}/ https://proxy.example.org:4443/masque?h=\{target_host\}&p=\{target_port\} https://proxy.example.org:4443/masque{?target_host,target_port}
Abbildung 1: URI-Template-Beispiele
Die folgenden Anforderungen gelten für das URI-Template:
-
Das URI-Template MUSS ein Level-3-Template oder niedriger sein.
-
Das URI-Template MUSS in absoluter Form vorliegen und MUSS nicht-leere Scheme-, Authority- und Path-Komponenten enthalten.
-
Die Path-Komponente des URI-Templates MUSS mit einem Schrägstrich ("/") beginnen.
-
Alle Template-Variablen MÜSSEN innerhalb der Path- oder Query-Komponenten des URI liegen.
-
Das URI-Template MUSS die beiden Variablen "target_host" und "target_port" enthalten und KANN andere Variablen enthalten.
-
Das URI-Template DARF KEINE nicht-ASCII-Unicode-Zeichen enthalten und MUSS nur ASCII-Zeichen im Bereich 0x21-0x7E einschließlich enthalten (beachten Sie, dass Prozentkodierung zulässig ist; siehe Abschnitt 2.1 von [URI]).
-
Das URI-Template DARF KEINE reservierte Erweiterung ("+"-Operator), Fragment-Erweiterung ("#"-Operator), Label-Erweiterung mit Punkt-Präfix, Pfadsegment-Erweiterung mit Schrägstrich-Präfix noch Pfad-Stil-Parameter-Erweiterung mit Semikolon-Präfix verwenden.
Clients SOLLTEN die oben genannten Anforderungen validieren; Clients KÖNNEN jedoch eine allgemeine URI-Template-Implementierung verwenden, der diese spezifische Validierung fehlt. Wenn ein Client feststellt, dass eine der oben genannten Anforderungen von einem URI-Template nicht erfüllt wird, MUSS der Client seine Konfiguration ablehnen und die Anfrage abbrechen, ohne sie an den UDP-Proxy zu senden.
Die ursprüngliche HTTP CONNECT-Methode ermöglichte die Übermittlung von Zielhost und -port, nicht jedoch von Schema, Proxy-Authority, Pfad oder Query. Daher existieren Clients mit Proxy-Konfigurationsschnittstellen, die es dem Benutzer nur ermöglichen, den Proxy-Host und den Proxy-Port zu konfigurieren. Client-Implementierungen dieser Spezifikation, die durch solche Einschränkungen eingeschränkt sind, KÖNNEN versuchen, auf UDP-Proxying-Funktionen zuzugreifen, indem sie das Standard-Template verwenden, das definiert ist als "https://$PROXY_HOST:$PROXY_PORT/.well-known/masque/udp/{target_host}/{target_port}/", wobei $PROXY_HOST und $PROXY_PORT der konfigurierte Host bzw. Port des UDP-Proxys sind. UDP-Proxy-Deployments SOLLTEN an diesem Ort Dienste anbieten, wenn sie mit solchen Clients interoperieren müssen.