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


Обработка запросов

Обработка запросов включает четыре этапа:

  • Получение запроса
  • Обработка запроса
  • Отправка ответа
  • Отмена запросов, которые не могут быть обработаны

Схема, показывающая цикл запроса процесса.

Получение запроса

API HTTP-сервера предоставляет структуру запросов для хранения проанализированного входящего запроса. Эта структура выделяется приложением и инициализируется при получении входящего запроса. Приложение вызывает функцию HttpReceiveHttpRequest для получения запроса. Если буфер запроса слишком мал для получения запроса, приложение может увеличить размер буфера и снова вызвать HttpReceiveHttpRequest , чтобы получить весь запрос.

Если запрос включает данные тела сущности для получения, приложения вызывают HttpReceiveRequestEntityBody с идентификатором запроса, возвращенным в параметре pRequestBuffer во время вызова HttpReceiveHttpRequest.

Обработка запроса

Приложение выполняет обработку запроса для конкретного приложения и формулирует ответ. API HTTP-сервера не накладывает времени ожидания на этот процесс.

Отправка ответа

Когда приложение завершает обработку запроса и формулирует ответ, оно вызывает функцию HttpSendHttpResponse для отправки ответа. Если ответ содержит данные тела сущности для отправки, приложение также вызывает HttpSendResponseEntityBody.

Отмена запросов

После того как приложение получило идентификатор запроса от вызова HttpReceiveHttpRequest, оно может в любое время отменить запрос, вызвав HttpCancelHttpRequest.