Introducción a la API de servidor HTTP

En la lista siguiente se identifica una secuencia típica de operaciones que usan la API de servidor HTTP:

En las operaciones que usan direcciones URL, tenga en cuenta que es la dirección URL procesada contenida en el miembro CookedUrl de la estructura HTTP_REQUEST_V1 que se debe usar. No utilice la dirección URL sin procesar en el miembro pRawUrl , que es únicamente para fines estadísticos y de seguimiento.

Cada aplicación crea su propia cola de solicitudes. Una aplicación obtiene su identificador de cola de solicitudes de HttpCreateHttpHandle. Pasa este identificador a la función HttpAddUrl para agregar una dirección URL a la cola de solicitudes. La aplicación recibe la notificación de una solicitud entrante y la recupera de la cola de solicitudes mediante una llamada a la función HttpReceiveHttpRequest con el identificador de cola de solicitudes. Puede usar esta función para recibir los encabezados de solicitud o los encabezados y el cuerpo de la entidad. HttpReceiveHttpRequest también devuelve un identificador de solicitud (RequestId) para la solicitud recibida que es única para el identificador de solicitud.

Nota

Es responsabilidad de la aplicación examinar todos los encabezados de solicitud pertinentes, incluidos los encabezados de negociación de contenido si se usan, y conmutar por error las solicitudes según corresponda en función del contenido del encabezado. La API del servidor HTTP garantiza que cada línea de encabezado finalice correctamente y no contenga caracteres no válidos.

 

Use la función HttpReceiveRequestEntityBody con el identificador de cola de solicitudes para recuperar partes posteriores del cuerpo de la entidad de una solicitud, si existe.

Nota

La API del servidor HTTP descodifica los mensajes fragmentados en el lado de recepción, pero no realiza la codificación fragmentada en el lado de envío. Si se requiere fragmentación en el lado de envío, la aplicación debe implementarla. Para obtener más información sobre la codificación fragmentada, consulte RFC 2616.

 

Use la función HttpReceiveClientCertificate con aplicaciones que atienden direcciones URL mediante un esquema seguro ("https") para recuperar opcionalmente la información del certificado del cliente.

Las respuestas se envían con la función HttpSendHttpResponse . Esta función usa requestId de la solicitud correspondiente para enviar la respuesta. Se puede enviar una respuesta en varias llamadas API a lo largo del tiempo llamando a la función HttpSendResponseEntityBody con requestId de la solicitud recibida originalmente.

Nota

De forma predeterminada, HttpSendHttpResponse usa "Microsoft-HTTPAPI/1.0" como encabezado "Server:". Si una aplicación especifica un encabezado de servidor en una respuesta, ese valor se coloca como la primera parte del encabezado del servidor, seguido de un espacio y, a continuación, "Microsoft-HTTPAPI/1.0".

 

En general, la API de servidor HTTP oculta los detalles de la administración de conexiones y su establecimiento y desmontaje de las aplicaciones. Sin embargo, una aplicación puede detectar opcionalmente la finalización de una conexión mediante una llamada a HttpWaitForDisconnect.

Las aplicaciones deben limpiarse mediante los pasos siguientes:

  • Cuando la aplicación no escucha o responde a una dirección URL, la dirección URL se quita mediante la función HttpRemoveURL .
  • Cuando la aplicación termine de usar la cola de solicitudes, cierre el identificador de la cola de solicitudes mediante la función CloseHandle .
  • Cuando la aplicación termine de usar la API de servidor HTTP, llame a la función HttpTerminate .