Поделиться через


API HTTP-сервера

Общие сведения о технологии API HTTP-сервера.

Чтобы разработать API HTTP-сервера, вам потребуются следующие заголовки:

Рекомендации по программированию для этой технологии см. в следующих руководствах.

Перечисления

 
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

Определяет тип параметра QOS, содержащегося в HTTP_QOS_SETTING_INFO структуре.
HTTP_REQUEST_AUTH_TYPE

Перечисление HTTP_REQUEST_AUTH_TYPE определяет типы проверки подлинности, поддерживаемые API HTTP-сервера. Это перечисление используется в структуре HTTP_REQUEST_AUTH_INFO.
HTTP_REQUEST_INFO_TYPE

Перечисление HTTP_REQUEST_INFO_TYPE определяет тип информации, содержащейся в структуре HTTP_REQUEST_INFO .
HTTP_REQUEST_PROPERTY

Определяет свойства, настроенные API HTTP-сервера в запросе.
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

Определяет свойства, настроенные API HTTP-сервера в группе URL-адресов, сеансе сервера или очереди запросов.
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-команд в структуре HTTP_REQUEST. Большинство известных команд документируются в RFC 2616 и RFC 2518, как показано ниже.

Functions

 
HTTP_EQUAL_VERSION

Возвращает ненулевое значение, если структура HTTP_VERSION равна заданной комбинации основных и дополнительных версий или нулю в противном случае.
HTTP_GREATER_EQUAL_VERSION

Макрос HTTP_GREATER_EQUAL_VERSION возвращает ненулевое значение, если структура HTTP_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 задает значение NULL HTTP_OPAQUE_ID.
HTTP_SET_VERSION

Задает указанную HTTP_VERSION структуру для указанной комбинации основных и дополнительных версий.
HttpAddFragmentToCache

Функция HttpAddFragmentToCache кэширует фрагмент данных с указанным именем, с помощью которого его можно получить, или обновляет данные, кэшированные под указанным именем.
HttpAddUrl

Регистрирует заданный URL-адрес, чтобы запросы, соответствующие ему, перенаправляются в указанную очередь запросов API HTTP-сервера.
HttpAddUrlToUrlGroup

Добавляет указанный URL-адрес в группу URL-адресов, определяемую идентификатором группы URL-адресов.
HTTPAPI_EQUAL_VERSION

Возвращает ненулевое значение, если структура HTTPAPI_VERSION точно равна указанной комбинации основных и дополнительных версий или нулю в противном случае.
HTTPAPI_GREATER_VERSION

Возвращает ненулевое значение, если структура HTTPAPI_VERSION больше указанной комбинации основных и дополнительных версий или ноль в противном случае.
HTTPAPI_LESS_VERSION

Возвращает ненулевое значение, если структура HTTPAPI_VERSION меньше указанной комбинации основных и дополнительных версий или ноль в противном случае.
HTTPAPI_VERSION_GREATER_OR_EQUAL

HTTPAPI_VERSION_GREATER_OR_EQUAL возвращает ненулевое значение, если структура HTTPAPI_VERSION больше или равна заданной комбинации основных и дополнительных версий или нулю.
HttpCancelHttpRequest

Функция HttpCancelHttpRequest отменяет указанный запрос.
HttpCloseRequestQueue

Закрывает дескриптор указанной очереди запросов, созданной httpCreateRequestQueue.
HttpCloseServerSession

Удаляет сеанс сервера, определенный идентификатором сеанса сервера.
HttpCloseUrlGroup

Закрывает группу URL-адресов, определяемую идентификатором группы URL-адресов.
HttpCreateHttpHandle

Создает очередь HTTP-запросов для вызывающего приложения и возвращает дескриптор.
HttpCreateRequestQueue

Создает новую очередь запроса или открывает существующую очередь запроса.
HttpCreateServerSession

Создает сеанс сервера для указанной версии.
HttpCreateUrlGroup

Создает группу URL-адресов в указанном сеансе сервера.
HttpDeclarePush

Объявляет связь "ресурс — подресурс" для отправки HTTP-сервера. HTTP.sys затем выполняет push-запрос HTTP 2.0 для данного ресурса, если базовый протокол, подключение, клиент и политики разрешают операцию принудительной отправки.
HttpDelegateRequestEx

Делегирует запрос из очереди исходного запроса целевой очереди запросов.
HttpDeleteServiceConfiguration

Удаляет указанные данные, такие как IP-адреса или SSL-сертификаты, из хранилища конфигурации API HTTP-сервера, одна запись за раз.
HttpFindUrlGroupId

Извлекает идентификатор группы URL-адресов для URL-адреса и очереди запросов.
HttpFlushResponseCache

Удаляется из кэша API HTTP-сервера, связанного с заданной очередью запросов, все фрагменты ответа с именем, часть сайта которой соответствует указанному URLPrefix.
HttpInitialize

Функция HttpInitialize инициализирует драйвер API HTTP-сервера, запускает его, если он еще не запущен, и выделяет структуры данных для вызывающего приложения для поддержки создания очереди ответа и других операций.
HttpIsFeatureSupported

Проверяет, поддерживается ли определенная функция.
HttpPrepareUrl

Анализирует, анализирует и нормализует ненормализованный URL-адрес Юникода или punycode, чтобы он был безопасным и допустимым для использования в других функциях HTTP.
HttpQueryRequestQueueProperty

Запрашивает свойство очереди запросов, определяемое указанным дескриптором.
HttpQueryServerSessionProperty

Запрашивает свойство сервера в указанном сеансе сервера.
HttpQueryServiceConfiguration

Извлекает одну или несколько записей конфигурации API HTTP-сервера.
HttpQueryUrlGroupProperty

Запрашивает свойство в указанной группе URL-адресов.
HttpReadFragmentFromCache

Функция HttpReadFragmentFromCache извлекает фрагмент ответа с указанным именем из кэша API HTTP-сервера.
HttpReceiveClientCertificate

Функция HttpReceiveClientCertificate используется серверным приложением для получения ssl-сертификата клиента или маркера привязки канала (CBT).
HttpReceiveHttpRequest

Извлекает следующий доступный HTTP-запрос из указанной очереди запросов синхронно или асинхронно.
HttpReceiveRequestEntityBody

Получает дополнительные данные тела сущности для указанного HTTP-запроса.
HttpRemoveUrl

Система останавливает запросы маршрутизации, соответствующие указанной строке UrlPrefix с указанной очередью запросов.
HttpRemoveUrlFromUrlGroup

Удаляет указанный URL-адрес из группы, определяемой идентификатором группы URL-адресов.
HttpSendHttpResponse

Отправляет HTTP-ответ в указанный HTTP-запрос.
HttpSendResponseEntityBody

Отправляет данные тела сущности, связанные с HTTP-ответом.
HttpSetRequestProperty

Задает новое свойство или изменяет существующее свойство по указанному запросу.
HttpSetRequestQueueProperty

Задает новое свойство или изменяет существующее свойство в очереди запросов, определяемой указанным дескриптором.
HttpSetServerSessionProperty

Задает новое свойство сеанса сервера или изменяет существующее свойство в указанном сеансе сервера.
HttpSetServiceConfiguration

Создает и задает запись конфигурации для хранилища конфигураций API HTTP-сервера.
HttpSetUrlGroupProperty

Задает новое свойство или изменяет существующее свойство в указанной группе URL-адресов.
HttpShutdownRequestQueue

Останавливает запросы очереди для указанного процесса очереди запросов.
HttpTerminate

Очищает ресурсы, используемые API HTTP-сервера для обработки вызовов приложением.
HttpUpdateServiceConfiguration

Обновляет атомарный параметр конфигурации службы, указывающий сертификат TLS в записи конфигурации HTTP-сервера.
HttpWaitForDemandStart

Ожидает прибытия нового запроса, который может обслуживаться новым процессом очереди запросов.
HttpWaitForDisconnect

Уведомляет приложение, когда подключение к HTTP-клиенту нарушается по какой-либо причине.
HttpWaitForDisconnectEx

Эта функция является расширением httpWaitForDisconnect.

Структуры

 
HTTP_BANDWIDTH_LIMIT_INFO

Структура HTTP_BANDWIDTH_LIMIT_INFO используется для задания или запроса ограничения регулирования пропускной способности. Эта структура должна использоваться при настройке или запросе httpServerBandwidthProperty в сеансе группы URL-адресов или сервера.
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

Содержит проверенную, каноническую строку запроса URL-адреса в кодировке Юникода UTF-16 вместе с указателями в него и длинами элементов.
HTTP_DATA_CHUNK

Представляет отдельный блок данных в памяти, в файле или в кэше ответов API HTTP-сервера.
HTTP_DELEGATE_REQUEST_PROPERTY_INFO

Описание дополнительных сведений о свойстве при делегировании запроса.
HTTP_FLOWRATE_INFO

Скорость передачи ответа.
HTTP_KNOWN_HEADER

Содержит значения заголовков для известного заголовка из HTTP-запроса или ОТВЕТА HTTP.
HTTP_LISTEN_ENDPOINT_INFO

Определяет, должны ли URL-адреса на основе IP-адресов прослушивать определенный IP-адрес или подстановочный знак.
HTTP_LOG_DATA

Содержит значение, указывающее тип данных журнала.
HTTP_LOG_FIELDS_DATA

Используется для передачи полей, регистрированных для HTTP-ответа при включении ведения журнала WC3.
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

Используется в параметре pConfigInformation функции HttpSetServiceConfiguration.
HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM

Используется для указания IP-адреса, к которому добавляется или удаляется из списка IP-адресов, к которым привязывается служба HTTP.
HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY

Используется HttpQueryServiceConfiguration для возврата списка IP-адресов, к которым привязывается служба HTTP.
HTTP_SERVICE_CONFIG_SSL_CCS_KEY

Служит ключом, с помощью которого определяется запись SSL-сертификата, указывающая, что Http.sys следует обратиться к хранилищу централизованного хранилища сертификатов (CCS), чтобы найти сертификаты, если порт получает подтверждение протокола TLS.
HTTP_SERVICE_CONFIG_SSL_CCS_QUERY

Указывает конфигурацию ssl для запроса записи централизованного хранилища сертификатов SSL (CCS) на порту при вызове функции HttpQueryServiceConfiguration.
HTTP_SERVICE_CONFIG_SSL_CCS_SET

Представляет запись SSL-сертификата, указывающую, что Http.sys следует обратиться к хранилищу централизованного хранилища сертификатов (CCS), чтобы найти сертификаты, если порт получает подтверждение tls.
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-сертификатов определяется запись сертификата ssl-сервера (SNI).
HTTP_SERVICE_CONFIG_SSL_SNI_QUERY

Используется для указания определенной записи сертификата имени сервера SSL (SSL) для запроса в хранилище SSL SNI.
HTTP_SERVICE_CONFIG_SSL_SNI_SET

Используется для добавления новой записи сертификата SSL-имени сервера (SNI) в хранилище SSL SNI или получения существующей записи из него.
HTTP_SERVICE_CONFIG_TIMEOUT_SET

Используется для задания значения времени ожидания API HTTP-сервера.
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

Определяет версию API HTTP-сервера.