Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Poniższa lista identyfikuje typową sekwencję operacji korzystających z interfejsu API serwera HTTP:
- Zainicjuj interfejs API serwera HTTP przy użyciu funkcji HttpInitialize.
- Utwórz kolejkę żądań przy użyciu funkcji HttpCreateHttpHandle.
- Zarejestruj jeden lub więcej adresów URL za pomocą funkcji HttpAddUrl.
- Odbieraj żądania przychodzące kierowane do zarejestrowanych adresów URL przy użyciu funkcji HttpReceiveHttpRequest, i wysyłaj odpowiedzi HTTP dla tych żądań przy użyciu funkcji HttpSendHttpResponse.
- (Opcjonalnie) Podczas wysyłania odpowiedzi wyślij dodatkową treść jednostki przy użyciu funkcji HttpSendResponseEntityBody.
- Wykonaj operacje czyszczenia przy użyciu funkcji HttpRemoveUrl, CloseHandle i HttpTerminate.
W operacjach korzystających z adresów URL należy pamiętać, że przetworzony adres URL zawarty w elemencie członkowskim CookedUrl struktury HTTP_REQUEST_V1 powinien być używany. Nie należy używać nieprzetworzonego adresu URL w elemencie członkowskim pRawUrl, który służy wyłącznie do celów śledzenia i statystyk.
Każda aplikacja tworzy własną kolejkę żądań. Aplikacja uzyskuje dojście do kolejki żądań z HttpCreateHttpHandle. Przekazuje ten uchwyt do funkcji HttpAddUrl, aby dodać adres URL do kolejki żądań. Aplikacja odbiera powiadomienie o żądaniu przychodzącym i pobiera je z kolejki żądań, wywołując funkcję HttpReceiveHttpRequest z uchwytem kolejki żądań. Za pomocą tej funkcji można odbierać nagłówki żądania lub zarówno nagłówki, jak i treść jednostki. httpReceiveHttpRequest również zwraca identyfikator żądania (RequestId) dla odebranego żądania, który jest unikatowy dla dojścia żądania.
Notatka
Aplikacja jest odpowiedzialna za sprawdzanie wszystkich odpowiednich nagłówków żądań, w tym nagłówków negocjacji zawartości, o ile są używane, oraz za odrzucanie żądań odpowiednio do zawartości nagłówka. Interfejs API serwera HTTP zapewnia tylko prawidłowe zakończenie każdego wiersza nagłówka i nie zawiera niedozwolonych znaków.
Użyj funkcji HttpReceiveRequestEntityBody z dojściem kolejki żądań, aby pobrać kolejne części treści jednostki żądania, jeśli takie istnieją.
Notatka
Interfejs API serwera HTTP dekoduje fragmentowane komunikaty po stronie odbierania, ale nie wykonuje kodowania fragmentowanego po stronie wysyłania. Jeśli fragmentowanie jest wymagane po stronie wysyłania, aplikacja musi ją zaimplementować. Aby uzyskać więcej informacji na temat kodowania fragmentowanego, zobacz RFC 2616.
Użyj funkcji HttpReceiveClientCertificate z aplikacjami obsługującymi adresy URL przy użyciu bezpiecznego schematu ("https"), aby opcjonalnie pobrać informacje o certyfikacie klienta.
Odpowiedzi są wysyłane za pomocą funkcji HttpSendHttpResponse. Ta funkcja używa identyfikatora RequestId z odpowiedniego żądania, aby wysłać odpowiedź. Odpowiedź można wysłać w kilku wywołaniach interfejsu API, wykonując funkcję HttpSendResponseEntityBody z identyfikatorem RequestId pobranym z pierwotnie odebranego żądania.
Notatka
Domyślnie HttpSendHttpResponse używa "Microsoft-HTTPAPI/1.0" jako nagłówka "Server:". Jeśli aplikacja określa nagłówek serwera w odpowiedzi, ta wartość jest umieszczana jako pierwsza część nagłówka serwera, po czym następuje spacja, a następnie "Microsoft-HTTPAPI/1.0".
Ogólnie rzecz biorąc, interfejs API serwera HTTP ukrywa szczegóły zarządzania połączeniami oraz ich ustanowienia i usuwania z aplikacji. Jednak aplikacja może opcjonalnie wykryć zakończenie połączenia, wywołując HttpWaitForDisconnect.
Aplikacje muszą się oczyścić, wykonując następujące kroki:
- Gdy aplikacja nie nasłuchuje lub nie odpowiada na adres URL, adres URL zostanie usunięty przy użyciu funkcji HttpRemoveURL.
- Po zakończeniu korzystania z kolejki żądań zamknij dojście kolejki żądań przy użyciu funkcji CloseHandle.
- Po zakończeniu korzystania z interfejsu API serwera HTTP, wywołaj funkcję HttpTerminate.