命名空间预留、注册和路由

预留和注册是 HTTP 服务器 API 授予对计算机上的 URL 命名空间的访问权限的操作。 应用程序可以注册 URL 命名空间的一部分,以便为来自 HTTP 客户端的请求提供服务。 应用程序使用 HttpAddUrl 函数向 HTTP 服务器 API 注册命名空间。 HTTP 服务器 API 将 URL 添加到应用程序的请求队列,并将请求路由到应用程序,具体取决于其队列中的 URL。 但是,在应用程序可以注册以接收对 URL 命名空间的请求之前,系统管理员必须代表运行该应用程序的用户为该 URL 预留。 默认情况下,命名空间处于关闭状态,也就是说,只有管理员才能注册 UrlPrefixes,直到管理员输入预留。

预留将 URL 命名空间的一部分永久分配给单个用户,允许他们保留或“拥有”命名空间的这一部分。 预留使用户有权注册命名空间的服务请求。 HTTP 服务器 API 确保用户不会从他们不拥有的命名空间部分注册 URL。 为了确保命名空间安全性,ACL (访问控制 List) 应用于为每个用户保留的命名空间部分。

保留命名空间由 URL 前缀字符串标识,其格式与用于注册的 URL 前缀的格式相同。 这意味着所有不同的主机说明符类别也可用于预留。

命名空间预留在重启后保留,更改会动态生效,因此无需停止并重启计算机。

以下概念进一步阐明,因为它们适用于注册和保留命名空间的过程。

  • 注册。 注册是应用程序通过该操作指示有兴趣接收指定 UrlPrefix 的请求。 用于 URL 注册的 API 为 HttpAddUrl。 注册通常在应用程序启动期间发生,必须在每次应用程序启动时执行。
  • 路由。 路由由 HTTP 服务器 API 执行,以确定要根据注册和/或保留的最佳匹配 UrlPrefix 将请求调度到的应用程序。 路由操作使用注册和预留信息。
  • 预订。 预留将 URL 命名空间的一部分分配给一个或多个用户。 此操作使用户有权注册指定的命名空间。 保留命名空间的用户表示“拥有”URL 命名空间的这一部分。 命名空间预留通常在安装应用程序期间执行,并且不经常执行。 预留在计算机重启后会持续存在,并且需要具有计算机的管理员权限或具有委派特权的所有权才能创建或删除。
  • 代表团。 通过委派权限,拥有命名空间的用户可以通过后续预留将子树的所有权移交给其他用户。 进行预留时,系统管理员会向用户授予委派权限。 可以为一个或多个用户分配对命名空间的委派权限。