Condividi tramite


Funzione HttpDeclarePush (http.h)

Dichiara una relazione da risorsa a sottorisorsa da usare per un push del server HTTP. HTTP.sys quindi esegue un push server HTTP 2.0 per la risorsa specificata, se il protocollo sottostante, la connessione, il client e i criteri consentono l'operazione push.

Sintassi

HTTPAPI_LINKAGE ULONG HttpDeclarePush(
  [in]           HANDLE                RequestQueueHandle,
  [in]           HTTP_REQUEST_ID       RequestId,
  [in]           HTTP_VERB             Verb,
  [in]           PCWSTR                Path,
  [in, optional] PCSTR                 Query,
  [in, optional] PHTTP_REQUEST_HEADERS Headers
);

Parametri

[in] RequestQueueHandle

Handle in una coda di richieste HTTP.sys restituita dalla funzione HttpCreateRequestQueue .

[in] RequestId

Identificatore opaco della richiesta che dichiara l'operazione push. La richiesta deve appartenere all'handle della coda specificato.

[in] Verb

Verbo HTTP da usare per l'operazione push. L'operazione push HTTP.sys supporta solo HttpVerbGET e HttpVerbHEAD.

[in] Path

Parte del percorso dell'URL per la risorsa di cui viene eseguito il push.

[in, optional] Query

Parte della query dell'URL per la risorsa di cui viene eseguito il push. Questa stringa non deve includere il punto interrogativo iniziale (?).

[in, optional] Headers

Intestazioni della richiesta per l'operazione push.

Non fornire un'intestazione Host, perché HTTP.sys genera automaticamente le informazioni sull'host corrette. HTTP.sys non supporta le operazioni push tra le origini, pertanto HTTP.sys applica e genera informazioni host corrispondenti alla richiesta avviata dal client originale.

La richiesta push non può avere un corpo dell'entità, pertanto non è possibile includere un'intestazione Content-Length diverso da zero o un'intestazione Transfer-Encoding.

Valore restituito

Se la funzione ha esito positivo, restituisce NO_ERROR.

Se la funzione ha esito negativo, restituisce un codice di errore di sistema definito in WinError.h.

Commenti

È necessario chiamare HttpDeclarePush prima di inviare eventuali byte di risposta che causerebbero l'individuazione della sottorisorsa stessa da parte del client. Se non si osserva questo ordine, si verifica una gara tra il server che esegue il push della risorsa e il client che sta recuperando le risorse, che può sprecare la larghezza di banda. L'applicazione server deve usare solo HttpDeclarePush per eseguire il push delle risorse necessarie per l'applicazione server e non già memorizzate nella cache dal client. Se l'applicazione server esegue il push di altre risorse, potrebbe verificarsi un uso non necessario della larghezza di banda e della CPU.

Requisiti

Requisito Valore
Client minimo supportato Windows 10 [solo app desktop]
Server minimo supportato Windows Server 2016 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione http.h
Libreria Httpapi.lib
DLL Httpapi.dll

Vedi anche

HTTP_REQUEST_HEADERS

HTTP_VERB

HttpCreateRequestQueue