Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In der folgenden Liste wird eine typische Abfolge von Vorgängen identifiziert, die die HTTP-Server-API verwenden:
- Initialisieren Sie die HTTP-Server-API mithilfe der HttpInitialize-Funktion .
- Erstellen Sie mithilfe der HttpCreateHttpHandle-Funktion eine Anforderungswarteschlange.
- Registrieren Sie mindestens eine URLs mithilfe der HttpAddUrl-Funktion .
- Empfangen Sie eingehende Anforderungen, die mithilfe der HttpReceiveHttpRequest-Funktion an registrierte URLs weitergeleitet werden, und senden Sie HTTP-Antworten für diese Anforderungen mithilfe der HttpSendHttpResponse-Funktion .
- (Optional) Senden Sie beim Senden einer Antwort mithilfe der HttpSendResponseEntityBody-Funktion einen zusätzlichen Entitätstext .
- Führen Sie sauber-Up-Vorgänge mithilfe der Funktionen HttpRemoveUrl, CloseHandle und HttpTerminate aus.
Beachten Sie bei Vorgängen, die URLs verwenden, dass die verarbeitete URL im CookedUrl-Member der HTTP_REQUEST_V1-Struktur verwendet werden soll. Verwenden Sie die nicht verarbeitete URL nicht im pRawUrl-Element , das ausschließlich zu Nachverfolgungs- und statistischen Zwecken dient.
Jede Anwendung erstellt eine eigene Anforderungswarteschlange. Eine Anwendung ruft ihr Anforderungswarteschlangenhandle von HttpCreateHttpHandle ab. Dieses Handle wird an die HttpAddUrl-Funktion übergeben, um der Anforderungswarteschlange eine URL hinzuzufügen. Die Anwendung empfängt eine Benachrichtigung über eine eingehende Anforderung und ruft sie aus der Anforderungswarteschlange ab, indem sie die HttpReceiveHttpRequest-Funktion mit dem Anforderungswarteschlangenhandle aufruft. Sie können diese Funktion verwenden, um entweder die Anforderungsheader oder sowohl die Header als auch den Entitätstext zu empfangen. HttpReceiveHttpRequest gibt auch einen Anforderungsbezeichner (RequestId) für die empfangene Anforderung zurück, die für das Anforderungshandle eindeutig ist.
Hinweis
Es liegt in der Verantwortung der Anwendung, alle relevanten Anforderungsheader zu untersuchen, einschließlich Inhaltsverhandlungsheadern, falls sie verwendet werden, und Fehleranforderungen nach Bedarf basierend auf Headerinhalten. Die HTTP-Server-API stellt nur sicher, dass jede Headerzeile ordnungsgemäß beendet wird und keine unzulässigen Zeichen enthält.
Verwenden Sie die HttpReceiveRequestEntityBody-Funktion mit dem Anforderungswarteschlangenhandle, um ggf. nachfolgende Teile des Entitätstexts einer Anforderung abzurufen.
Hinweis
Die HTTP-Server-API decodiert blockierte Nachrichten auf der Empfangsseite, führt jedoch keine blockierte Codierung auf der Sendeseite aus. Wenn auf der Sendeseite Blockierung erforderlich ist, muss die Anwendung es implementieren. Weitere Informationen zur blockierten Codierung finden Sie unter RFC 2616.
Verwenden Sie die HttpReceiveClientCertificate-Funktion mit Anwendungen, die URLs mithilfe eines sicheren Schemas ("https") bereitstellen, um optional die Zertifikatinformationen des Clients abzurufen.
Antworten werden mit der HttpSendHttpResponse-Funktion gesendet. Diese Funktion verwendet die RequestId der entsprechenden Anforderung, um die Antwort zu senden. Eine Antwort kann im Laufe der Zeit in mehreren API-Aufrufen gesendet werden, indem die HttpSendResponseEntityBody-Funktion mit der RequestId aus der ursprünglich empfangenen Anforderung aufgerufen wird.
Hinweis
Standardmäßig verwendet HttpSendHttpResponse "Microsoft-HTTPAPI/1.0" als "Server:"-Header. Wenn eine Anwendung einen Serverheader in einer Antwort angibt, wird dieser Wert als erster Teil des Serverheaders platziert, gefolgt von einem Leerzeichen und dann "Microsoft-HTTPAPI/1.0".
Im Allgemeinen blendet die HTTP-Server-API Details zur Verbindungsverwaltung und deren Einrichtung und Zum Löschen von Anwendungen aus. Eine Anwendung kann jedoch optional das Beenden einer Verbindung erkennen, indem sie HttpWaitForDisconnect aufruft.
Anwendungen müssen mit den folgenden Schritten sauber:
- Wenn die Anwendung keine URL lauscht oder darauf reagiert, wird die URL mithilfe der HttpRemoveURL-Funktion entfernt.
- Wenn die Anwendung die Anforderungswarteschlange verwendet hat, schließen Sie das Anforderungswarteschlangenhandle-Handle mithilfe der CloseHandle-Funktion .
- Wenn die Anwendung mit der HTTP-Server-API abgeschlossen ist, rufen Sie die HttpTerminate-Funktion auf .