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, как показано ниже.

Функции

 
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 задает для HTTP_OPAQUE_ID значение NULL.
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 затем выполняет отправку сервера 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 в записи конфигурации в хранилище конфигурации API 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_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-имени сервера (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

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

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