HTTP 服务器 API 技术概述。
若要开发 HTTP 服务器 API,需要以下标头:
有关此技术的编程指南,请参阅:
枚举
|
HTTP_503_RESPONSE_VERBOSITY HTTP_503_RESPONSE_VERBOSITY枚举定义 503、服务不可用、错误响应的详细级别。在请求队列上设置或查询 HttpServer503ResponseProperty 时,必须使用此结构。 |
|
HTTP_AUTH_STATUS 定义请求的身份验证状态。 |
|
HTTP_AUTHENTICATION_HARDENING_LEVELS 服务器强化级别。 |
|
HTTP_CACHE_POLICY_TYPE HTTP_CACHE_POLICY_TYPE枚举类型定义可用的缓存策略。 |
|
HTTP_DATA_CHUNK_TYPE 定义数据区块的数据源。 |
|
HTTP_DELEGATE_REQUEST_PROPERTY_ID 描述委托请求的属性信息。 |
|
HTTP_ENABLED_STATE 定义请求队列、服务器会话或 URL 组的状态。 |
|
HTTP_FEATURE_ID 定义指定 HTTP 功能的标识符的常量。 |
|
HTTP_HEADER_ID HTTP_HEADER_ID枚举类型列出了 HTTP 请求和响应的已知标头,并将数组索引与每个此类标头相关联。 |
|
HTTP_LOG_DATA_TYPE 标识日志数据类型。 |
|
HTTP_LOGGING_ROLLOVER_TYPE 定义日志文件滚动更新类型。 |
|
HTTP_LOGGING_TYPE 定义执行的日志记录类型。 |
|
HTTP_QOS_SETTING_TYPE 标识HTTP_QOS_SETTING_INFO结构中包含的 QOS 设置的类型。 |
|
HTTP_REQUEST_AUTH_TYPE HTTP_REQUEST_AUTH_TYPE枚举定义 HTTP 服务器 API 支持的身份验证类型。此枚举用于HTTP_REQUEST_AUTH_INFO结构。 |
|
HTTP_REQUEST_INFO_TYPE HTTP_REQUEST_INFO_TYPE枚举定义HTTP_REQUEST_INFO结构中包含的信息类型。 |
|
HTTP_REQUEST_PROPERTY 定义由 HTTP 服务器 API 在请求中配置的属性。 |
|
HTTP_REQUEST_TIMING_TYPE 定义常量,该常量指定 HTTP_REQUEST_TIMING_INFO中返回的信息的可能请求计时。 |
|
HTTP_RESPONSE_INFO_TYPE HTTP_RESPONSE_INFO_TYPE枚举定义HTTP_RESPONSE_INFO结构中包含的信息类型。此枚举用于HTTP_RESPONSE_INFO结构。 |
|
HTTP_SERVER_PROPERTY 定义由 URL 组、服务器会话或请求队列上的 HTTP 服务器 API 配置的属性。 |
|
HTTP_SERVICE_BINDING_TYPE HTTP_SERVICE_BINDING_TYPE枚举类型指定服务名称的字符串类型。 |
|
HTTP_SERVICE_CONFIG_CACHE_KEY 用于 HttpSetServiceConfiguration 和 HttpQueryServiceConfiguration 函数。 |
|
HTTP_SERVICE_CONFIG_ID 定义服务配置选项。 |
|
HTTP_SERVICE_CONFIG_QUERY_TYPE HTTP_SERVICE_CONFIG_QUERY_TYPE枚举类型定义要执行的各种类型的查询。 它在HTTP_SERVICE_CONFIG_SSL_QUERY、HTTP_SERVICE_CONFIG_SSL_CCS_QUERY和HTTP_SERVICE_CONFIG_URLACL_QUERY结构中使用。 |
|
HTTP_SERVICE_CONFIG_TIMEOUT_KEY HTTP_SERVICE_CONFIG_TIMEOUT_KEY枚举定义通过HTTP_SERVICE_CONFIG_TIMEOUT_SET结构查询或配置的计时器类型。 |
|
HTTP_VERB HTTP_VERB枚举类型定义用于在HTTP_REQUEST结构中指定已知标准 HTTP 谓词的值。 这些已知谓词中的大多数记录在 RFC 2616 和 RFC 2518 中,如下所示。 |
Functions
|
HTTP_EQUAL_VERSION 如果HTTP_VERSION结构等于指定的主/次要版本组合,则返回非零值,否则返回零。 |
|
HTTP_GREATER_EQUAL_VERSION 如果HTTP_VERSION结构大于或等于指定的主/次要版本组合,则HTTP_GREATER_EQUAL_VERSION宏返回非零值,否则返回零。 |
|
HTTP_GREATER_VERSION 如果HTTP_VERSION结构大于指定的主/次要版本组合,则返回非零值,否则返回零。 |
|
HTTP_IS_NULL_ID 确定HTTP_OPAQUE_ID是否为 NULL。 |
|
HTTP_LESS_EQUAL_VERSION 如果HTTP_VERSION结构小于或等于指定的主/次要版本组合,则返回非零值,否则返回零。 |
|
HTTP_LESS_VERSION 如果HTTP_VERSION结构小于指定的主版本/次要版本组合,则返回非零值,否则返回零。 |
|
HTTP_NOT_EQUAL_VERSION 如果HTTP_VERSION结构大于或小于指定的主/次要版本组合,则返回非零值;如果结构相等,则返回零。 |
|
HTTP_SET_NULL_ID HTTP_SET_NULL_ID宏将HTTP_OPAQUE_ID设置为 NULL。 |
|
HTTP_SET_VERSION 将指定的HTTP_VERSION结构设置为指定的主/次要版本组合。 |
|
HttpAddFragmentToCache HttpAddFragmentToCache 函数缓存具有指定名称的数据片段,通过该片段可以检索数据片段,或更新缓存在指定名称下的数据。 |
|
HttpAddUrl 注册给定的 URL,以便匹配的请求路由到指定的 HTTP 服务器 API 请求队列。 |
|
HttpAddUrlToUrlGroup 将指定的 URL 添加到 URL 组 ID 标识的 URL 组中。 |
|
HTTPAPI_EQUAL_VERSION 如果HTTPAPI_VERSION结构与指定的主/次要版本组合完全相等,则返回非零值,否则返回零。 |
|
HTTPAPI_GREATER_VERSION 如果HTTPAPI_VERSION结构大于指定的主/次要版本组合,则返回非零值,否则返回零。 |
|
HTTPAPI_LESS_VERSION 如果HTTPAPI_VERSION结构小于指定的主/次要版本组合,则返回非零值,否则返回零。 |
|
HTTPAPI_VERSION_GREATER_OR_EQUAL 如果HTTPAPI_VERSION结构大于或等于指定的主/次要版本组合,则HTTPAPI_VERSION_GREATER_OR_EQUAL返回非零值,否则返回零。 |
|
HttpCancelHttpRequest HttpCancelHttpRequest 函数取消指定的请求。 |
|
HttpCloseRequestQueue 关闭由 HttpCreateRequestQueue 创建的指定请求队列的句柄。 |
|
HttpCloseServerSession 删除由服务器会话 ID 标识的服务器会话。 |
|
HttpCloseUrlGroup 关闭 URL 组 ID 标识的 URL 组。 |
|
HttpCreateHttpHandle 为调用应用程序创建 HTTP 请求队列,并为其返回句柄。 |
|
HttpCreateRequestQueue 创建新的请求队列或打开现有请求队列。 |
|
HttpCreateServerSession 为指定版本创建服务器会话。 |
|
HttpCreateUrlGroup 在指定的服务器会话下创建 URL 组。 |
|
HttpDeclarePush 声明要用于 HTTP 服务器推送的资源到子资源关系。 然后,如果基础协议、连接、客户端和策略允许推送作,则 HTTP.sys 针对给定资源执行 HTTP 2.0 服务器推送。 |
|
HttpDelegateRequestEx 将源请求队列中的请求委托给目标请求队列。 |
|
HttpDeleteServiceConfiguration 从 HTTP 服务器 API 配置存储区中删除指定的数据(例如 IP 地址或 SSL 证书),一次一条记录。 |
|
HttpFindUrlGroupId 检索 URL 和请求队列的 URL 组 ID。 |
|
HttpFlushResponseCache 从与给定请求队列关联的 HTTP 服务器 API 缓存中删除其站点部分与指定 UrlPrefix 匹配的名称的所有响应片段。 |
|
HttpInitialize HttpInitialize 函数初始化 HTTP 服务器 API 驱动程序,启动它(如果尚未启动),并为调用应用程序分配数据结构以支持响应队列创建和其他作。 |
|
HttpIsFeatureSupported 检查是否支持特定功能。 |
|
HttpPrepareUrl 分析、分析和规范化非规范化 Unicode 或 punycode URL,以便在其他 HTTP 函数中使用是安全的且有效的。 |
|
HttpQueryRequestQueueProperty 查询由指定句柄标识的请求队列的属性。 |
|
HttpQueryServerSessionProperty 查询指定服务器会话上的服务器属性。 |
|
HttpQueryServiceConfiguration 检索一个或多个 HTTP 服务器 API 配置记录。 |
|
HttpQueryUrlGroupProperty 查询指定 URL 组上的属性。 |
|
HttpReadFragmentFromCache HttpReadFragmentFromCache 函数从 HTTP 服务器 API 缓存中检索具有指定名称的响应片段。 |
|
HttpReceiveClientCertificate 服务器应用程序使用 HttpReceiveClientCertificate 函数检索客户端 SSL 证书或通道绑定令牌(CBT)。 |
|
HttpReceiveHttpRequest 从指定请求队列中同步或异步检索下一个可用的 HTTP 请求。 |
|
HttpReceiveRequestEntityBody 接收指定 HTTP 请求的其他实体正文数据。 |
|
HttpRemoveUrl 使系统停止将与指定的 UrlPrefix 字符串匹配的路由请求路由到指定的请求队列。 |
|
HttpRemoveUrlFromUrlGroup 从 URL 组 ID 标识的组中删除指定的 URL。 |
|
HttpSendHttpResponse 将 HTTP 响应发送到指定的 HTTP 请求。 |
|
HttpSendResponseEntityBody 发送与 HTTP 响应关联的实体正文数据。 |
|
HttpSetRequestProperty 设置新属性或修改指定请求上的现有属性。 |
|
HttpSetRequestQueueProperty 设置新属性或修改由指定句柄标识的请求队列上的现有属性。 |
|
HttpSetServerSessionProperty 设置新的服务器会话属性或修改指定服务器会话上的现有属性。 |
|
HttpSetServiceConfiguration 为 HTTP 服务器 API 配置存储创建和设置配置记录。 |
|
HttpSetUrlGroupProperty 设置新属性或修改指定 URL 组中的现有属性。 |
|
HttpShutdownRequestQueue 停止对指定请求队列进程的队列请求。 |
|
HttpTerminate 清理 HTTP 服务器 API 用于处理应用程序调用的资源。 |
|
HttpUpdateServiceConfiguration 以原子方式更新服务配置参数,该参数在 HTTP 服务器 API 配置存储中的配置记录中指定传输层安全性 (TLS) 证书。 |
|
HttpWaitForDemandStart 等待新请求队列进程可以提供的新请求的到达。 |
|
HttpWaitForDisconnect 因任何原因断开与 HTTP 客户端的连接时通知应用程序。 |
|
HttpWaitForDisconnectEx 此函数是 HttpWaitForDisconnect 的扩展。 |
结构
|
HTTP_BANDWIDTH_LIMIT_INFO HTTP_BANDWIDTH_LIMIT_INFO结构用于设置或查询带宽限制。 在 URL 组或服务器会话上设置或查询 HttpServerBandwidthProperty 时,必须使用此结构。 |
|
HTTP_BINDING_INFO 用于将 URL 组与请求队列相关联。 |
|
HTTP_BYTE_RANGE HTTP_BYTE_RANGE结构用于在缓存的响应片段、文件或其他数据块中指定字节范围。 |
|
HTTP_CACHE_POLICY 用于定义与缓存的响应片段关联的缓存策略。 |
|
HTTP_CHANNEL_BIND_INFO HTTP_CHANNEL_BIND_INFO。 |
|
HTTP_CONNECTION_LIMIT_INFO 用于设置或查询 URL 组的最大未完成连接数的限制。 |
|
HTTP_COOKED_URL 包含经过验证、规范的 UTF-16 Unicode 编码 URL 请求字符串以及指向它的指针和元素长度。 |
|
HTTP_DATA_CHUNK 表示内存、文件中或 HTTP 服务器 API 响应片段缓存中的单个数据块。 |
|
HTTP_DELEGATE_REQUEST_PROPERTY_INFO 描述委托请求时的其他属性信息。 |
|
HTTP_FLOWRATE_INFO 响应的传输速率。 |
|
HTTP_KNOWN_HEADER 包含来自 HTTP 请求或 HTTP 响应的已知标头的标头值。 |
|
HTTP_LISTEN_ENDPOINT_INFO 控制基于 IP 的 URL 是应侦听特定 IP 地址还是对通配符进行侦听。 |
|
HTTP_LOG_DATA 包含一个值,该值指定日志数据类型。 |
|
HTTP_LOG_FIELDS_DATA 用于在启用 WC3 日志记录时传递为 HTTP 响应记录的字段。 |
|
HTTP_LOGGING_INFO 用于在 URL 组或服务器会话上启用服务器端日志记录。 |
|
HTTP_MULTIPLE_KNOWN_HEADERS 指定当需要多个标头时包含在 HTTP 响应中的标头。 |
|
HTTP_PROPERTY_FLAGS 属性配置结构用于在设置属性配置时启用或禁用配置对象上的属性。 |
|
HTTP_QOS_SETTING_INFO 包含有关 QOS 设置的信息。 |
|
HTTP_REQUEST_AUTH_INFO 包含请求的身份验证状态,其中包含接收进程可用于模拟经过身份验证的客户端的客户端令牌的句柄。 |
|
HTTP_REQUEST_CHANNEL_BIND_STATUS HTTP_REQUEST_CHANNEL_BIND_STATUS。 |
|
HTTP_REQUEST_HEADERS 包含使用 HTTP 请求发送的标头。 |
|
HTTP_REQUEST_INFO 使用有关请求的其他信息扩展HTTP_REQUEST结构。 |
|
HTTP_REQUEST_PROPERTY_SNI 用于检查客户端在打开 TLS 连接时请求的域。 |
|
HTTP_REQUEST_PROPERTY_STREAM_ERROR HTTP_REQUEST_PROPERTY_STREAM_ERROR结构表示 HTTP/2 或 HTTP/3 流错误代码。 |
|
HTTP_REQUEST_TIMING_INFO 包含有关每个请求处理阶段花费的时间的信息。 |
|
HTTP_REQUEST_V1 使用HTTP_REQUEST结构返回与特定请求关联的数据。 |
|
HTTP_REQUEST_V2 使用有关请求的详细信息扩展HTTP_REQUEST_V1请求结构。 |
|
HTTP_RESPONSE_HEADERS 包含使用 HTTP 响应发送的标头。 |
|
HTTP_RESPONSE_INFO 使用响应的其他信息扩展HTTP_RESPONSE结构。 |
|
HTTP_RESPONSE_V1 包含与 HTTP 响应关联的数据。 |
|
HTTP_RESPONSE_V2 使用响应的详细信息扩展 HTTP 版本 1.0 响应结构。 |
|
HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS结构包含 URL 组中的基本身份验证信息。此结构包含在HTTP_SERVER_AUTHENTICATION_INFO结构中。 |
|
HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS 包含 URL 组中摘要式身份验证的信息。 |
|
HTTP_SERVER_AUTHENTICATION_INFO 用于在 URL 组或服务器会话上启用服务器端身份验证。 |
|
HTTP_SERVICE_BINDING_A HTTP_SERVICE_BINDING_A。 |
|
HTTP_SERVICE_BINDING_BASE HTTP_SERVICE_BINDING_BASE。 |
|
HTTP_SERVICE_BINDING_W HTTP_SERVICE_BINDING_W。 |
|
HTTP_SERVICE_CONFIG_CACHE_SET 用于 HttpSetServiceConfiguration 函数的 pConfigInformation 参数。 |
|
HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM 用于指定要在 HTTP 服务绑定到的 IP 地址列表中添加或删除的 IP 地址。 |
|
HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY 由 HttpQueryServiceConfiguration 用来返回 HTTP 服务绑定到的 Internet 协议 (IP) 地址的列表。 |
|
HTTP_SERVICE_CONFIG_SSL_CCS_KEY 用作用于标识 SSL 证书记录的密钥,该记录指定 Http.sys 应咨询集中式证书存储(CCS)存储,以在端口收到传输层安全性(TLS)握手时查找证书。 |
|
HTTP_SERVICE_CONFIG_SSL_CCS_QUERY 指定在调用 HttpQueryServiceConfiguration 函数时,在端口上查询 SSL 集中式证书存储(CCS)记录的安全套接字层(SSL)配置。 |
|
HTTP_SERVICE_CONFIG_SSL_CCS_SET 表示 SSL 证书记录,该记录指定如果端口收到传输层安全性(TLS)握手,Http.sys 应咨询集中式证书存储(CCS)存储以查找证书。 |
|
HTTP_SERVICE_CONFIG_SSL_KEY 用作标识给定安全套接字层(SSL)证书记录的密钥。 |
|
HTTP_SERVICE_CONFIG_SSL_PARAM 定义 SSL 配置存储中的记录。 |
|
HTTP_SERVICE_CONFIG_SSL_QUERY 用于指定要在 SSL 配置存储中查询的特定记录。 |
|
HTTP_SERVICE_CONFIG_SSL_SET 用于向 SSL 存储添加新记录或从中检索现有记录。 |
|
HTTP_SERVICE_CONFIG_SSL_SNI_KEY 用作在 SSL SNI 存储中标识给定安全套接字层(SSL)服务器名称指示(SNI)证书记录的密钥。 |
|
HTTP_SERVICE_CONFIG_SSL_SNI_QUERY 用于指定在 SSL SNI 存储中查询的特定安全套接字层(SSL)服务器名称指示(SNI)证书记录。 |
|
HTTP_SERVICE_CONFIG_SSL_SNI_SET 用于将新的安全套接字层(SSL)服务器名称指示(SNI)证书记录添加到 SSL SNI 存储或从中检索现有记录。 |
|
HTTP_SERVICE_CONFIG_TIMEOUT_SET 用于设置 HTTP 服务器 API 宽超时值。 |
|
HTTP_SERVICE_CONFIG_URLACL_KEY 用于在 URL 命名空间预留存储中指定特定预留记录。 |
|
HTTP_SERVICE_CONFIG_URLACL_PARAM 用于指定与 URL 命名空间预留存储中的特定记录关联的权限。 |
|
HTTP_SERVICE_CONFIG_URLACL_QUERY 用于指定在 URL 命名空间预留存储中查询的特定预留记录。 |
|
HTTP_SERVICE_CONFIG_URLACL_SET 用于将新记录添加到 URL 预留存储或从中检索现有记录。 |
|
HTTP_SSL_CLIENT_CERT_INFO 包含有关安全套接字层(SSL)客户端证书的数据,该证书可用于确定证书是否有效。 |
|
HTTP_SSL_INFO 包含使用安全套接字层(SSL)的连接的数据,该连接通过 SSL 握手获得。 |
|
HTTP_STATE_INFO 用于启用或禁用服务器会话或 URL 组。 |
|
HTTP_TIMEOUT_LIMIT_INFO 定义特定于应用程序的连接超时限制。 |
|
HTTP_TRANSPORT_ADDRESS 指定用于特定 HTTP 连接的地址(本地和远程)。 |
|
HTTP_UNKNOWN_HEADER 包含 HTTP 请求或响应中标头的名称和值,该标头的名称未显示在枚举中。 |
|
HTTP_VERSION 定义请求需要或响应提供的 HTTP 协议版本。 |
|
HTTP_WSK_API_TIMINGS 表示特定 API 调用所用的时间的统计信息。 |
|
HTTPAPI_VERSION 定义 HTTP 服务器 API 的版本。 |