3. Konfiguration von Clients
Clients werden so konfiguriert, dass sie IP-Proxying über HTTP mittels einer URI-Vorlage [TEMPLATE] verwenden. Die URI-Vorlage KANN zwei Variablen enthalten: "target" und "ipproto"; siehe Abschnitt 4.6. Die Optionalität der Variablen muss bei der Definition der Vorlage berücksichtigt werden, damit die Variable entweder selbstidentifizierend ist oder in der Syntax ausgeschlossen werden kann.
Beispiele sind unten aufgeführt:
https://example.org/.well-known/masque/ip/{target}/{ipproto}/
https://proxy.example.org:4443/masque/ip?t={target}&i={ipproto}
https://proxy.example.org:4443/masque/ip{?target,ipproto}
https://masque.example.org/?user=bob
Abbildung 1: Beispiele für URI-Vorlagen
Die folgenden Anforderungen gelten für die URI-Vorlage:
-
Die URI-Vorlage MUSS eine Vorlage der Ebene 3 oder niedriger sein.
-
Die URI-Vorlage MUSS in absoluter Form vorliegen und MUSS nicht leere Schema-, Autoritäts- und Pfadkomponenten enthalten.
-
Die Pfadkomponente der URI-Vorlage MUSS mit einem Schrägstrich "/" beginnen.
-
Alle Vorlagenvariablen MÜSSEN sich innerhalb der Pfad- oder Abfragekomponenten der URI befinden.
-
Die URI-Vorlage KANN die beiden Variablen "target" und "ipproto" enthalten und KANN andere Variablen enthalten. Wenn die Variablen "target" oder "ipproto" enthalten sind, DÜRFEN ihre Werte NICHT leer sein. Clients können stattdessen "*" verwenden, um Wildcard- oder Nicht-Präferenzwerte anzugeben; siehe Abschnitt 4.6.
-
Die URI-Vorlage DARF KEINE Nicht-ASCII-Unicode-Zeichen enthalten und DARF NUR ASCII-Zeichen im Bereich 0x21-0x7E einschließlich enthalten (beachten Sie, dass Prozentkodierung zulässig ist; siehe Abschnitt 2.1 von URI).
-
Die URI-Vorlage DARF KEINE reservierte Erweiterung ("+"-Operator), Fragmenterweiterung ("#"-Operator), Label-Erweiterung mit Punkt-Präfix, Pfadsegment-Erweiterung mit Schrägstrich-Präfix oder Pfadstil-Parametererweiterung mit Semikolon-Präfix verwenden.
Clients SOLLTEN die oben genannten Anforderungen validieren; Clients KÖNNEN jedoch eine Allzweck-URI-Vorlagenimplementierung verwenden, der diese spezifische Validierung fehlt. Wenn ein Client feststellt, dass eine der oben genannten Anforderungen von einer URI-Vorlage nicht erfüllt wird, MUSS der Client seine Konfiguration ablehnen und die Anfrage abbrechen, ohne sie an den IP-Proxy zu senden.
Wie beim UDP-Proxying erlauben einige Clientkonfigurationen für IP-Proxys dem Benutzer nur, den Proxy-Host und den Proxy-Port zu konfigurieren. Clients mit solchen Einschränkungen KÖNNEN versuchen, auf IP-Proxying-Funktionen zuzugreifen, indem sie die Standardvorlage verwenden, die definiert ist als: "https://$PROXY_HOST:$PROXY_PORT/.well-known/masque/ip/{target}/{ipproto}/", wobei $PROXY_HOST und $PROXY_PORT der konfigurierte Host bzw. Port des IP-Proxys sind. IP-Proxy-Bereitstellungen SOLLTEN an diesem Ort einen Dienst anbieten, wenn sie mit solchen Clients zusammenarbeiten müssen.