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 |