Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En la lista siguiente se identifica una secuencia típica de operaciones que usan la API de servidor HTTP:
- Inicialice la API de servidor HTTP mediante la función HttpInitialize .
- Cree una cola de solicitudes mediante la función HttpCreateHttpHandle .
- Registre una o varias direcciones URL mediante la función HttpAddUrl .
- Reciba solicitudes entrantes dirigidas a direcciones URL registradas mediante la función HttpReceiveHttpRequest y envíe respuestas HTTP para estas solicitudes mediante la función HttpSendHttpResponse .
- (Opcional) Al enviar una respuesta, envíe un cuerpo de entidad adicional mediante la función HttpSendResponseEntityBody .
- Realice operaciones de limpieza mediante las funciones HttpRemoveUrl, CloseHandle y HttpTerminate .
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 .