Zum Hauptinhalt springen

2. Client-Konfiguration

  1. 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.