Namespacereservierungen, Registrierungen und Routing
Reservierung und Registrierung sind die Vorgänge, mit denen die HTTP-Server-API Zugriff auf den URL-Namespace auf einem Computer gewährt. Anwendungen können sich für einen Teil des URL-Namespace registrieren, um Anforderungen von HTTP-Clients zu bearbeiten. Die Anwendung registriert mithilfe der HttpAddUrl-Funktion einen Namespace bei der HTTP-Server-API. Die HTTP-Server-API fügt die URLs der Anforderungswarteschlange für die Anwendung hinzu und leitet Anforderungen abhängig von den URLs in ihren Warteschlangen an die Anwendungen weiter. Bevor sich die Anwendung jedoch registrieren kann, um Anforderungen für einen URL-Namespace zu empfangen, muss der Systemadministrator im Namen des Benutzers, der die Anwendung ausführt, eine Reservierung für diese URL vornehmen. Standardmäßig ist der Namespace geschlossen, d. h., nur der Administrator kann URLPrefixes registrieren, bis der Administrator eine Reservierung eingibt.
Eine Reservierung ordnet einzelnen Benutzern dauerhaft einen Teil des URL-Namespace zu, sodass sie diesen Teil des Namespace reservieren oder "besitzen". Reservierungen geben dem Benutzer das Recht, sich bei Dienstanforderungen für den Namespace zu registrieren. Die HTTP-Server-API stellt sicher, dass Benutzer keine URLs aus Teilen des Namespace registrieren, die sie nicht besitzen. Um die Namespacesicherheit sicherzustellen, werden ACLs (Access Control List) auf den Teil des Namespace angewendet, der für jeden Benutzer reserviert ist.
Reservierte Namespaces werden durch URL-Präfixzeichenfolgen identifiziert, die auf die gleiche Weise formatiert sind wie URL-Präfixe, die für Registrierungen verwendet werden. Dies bedeutet, dass alle verschiedenen Hostspezifiziererkategorien auch für Reservierungen verfügbar sind.
Namespacereservierungen werden bei Neustarts beibehalten, und Änderungen werden dynamisch wirksam, sodass der Computer nicht beendet und neu gestartet werden muss.
Die folgenden Konzepte werden weiter erläutert, da sie für den Prozess der Registrierung und Reservierung von Namespaces gelten.
- Registrierung. Registrierung ist der Vorgang, bei dem eine Anwendung interesse am Empfang von Anforderungen für ein angegebenes UrlPrefix angibt. Die API für die URL-Registrierung ist HttpAddUrl. Die Registrierung erfolgt in der Regel während des Anwendungsstarts und muss jedes Mal durchgeführt werden, wenn die Anwendung gestartet wird.
- Routing. Das Routing wird von der HTTP-Server-API ausgeführt, um die Anwendung zu bestimmen, an die die Anforderung gesendet werden soll. Dies basiert auf dem am besten übereinstimmenden UrlPrefix, das registriert und/oder reserviert ist. Beim Routingvorgang werden sowohl Registrierungs- als auch Reservierungsinformationen verwendet.
- Reservierung. Die Reservierung weist einem oder mehreren Benutzern einen Teil des URL-Namespace zu. Dieser Vorgang gibt Benutzern das Recht, sich für den angegebenen Namespace zu registrieren. Ein Benutzer, für den ein Namespace reserviert ist, wird als "Besitzen" dieses Teils des URL-Namespaces bezeichnet. Namespacereservierungen werden in der Regel während der Installation der Anwendung durchgeführt und sind ein seltener Vorgang. Reservierungen bleiben bei Neustarts des Computers erhalten und erfordern Administratorrechte auf dem Computer oder den Besitz mit Delegierungsberechtigungen zum Erstellen oder Löschen.
- Delegation. Delegierungsberechtigungen ermöglichen es einem Benutzer, der besitzer eines Namespace ist, den Besitz einer Teilstruktur durch eine nachfolgende Reservierung an einen anderen Benutzer zu übergeben. Delegierungsberechtigungen werden einem Benutzer vom Systemadministrator gewährt, wenn die Reservierung erfolgt. Einem oder mehreren Benutzern können Delegierungsberechtigungen für einen Namespace zugewiesen werden.