Fonction HttpDeclarePush (http.h)
Déclare une relation de ressource à sous-ressource à utiliser pour un push de serveur HTTP. HTTP.sys effectue ensuite un push serveur HTTP 2.0 pour la ressource donnée, si le protocole, la connexion, le client et les stratégies sous-jacents autorisent l’opération push.
Syntaxe
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
);
Paramètres
[in] RequestQueueHandle
Handle d’une HTTP.sys file d’attente de requêtes que la fonction HttpCreateRequestQueue a retournée.
[in] RequestId
Identificateur opaque de la demande qui déclare l’opération push. La demande doit provenir du handle de file d’attente spécifié.
[in] Verb
Verbe HTTP à utiliser pour l’opération push. L’opération push HTTP.sys prend uniquement en charge HttpVerbGET et HttpVerbHEAD.
[in] Path
Partie du chemin d’accès de l’URL de la ressource en cours d’envoi(push).
[in, optional] Query
Partie requête de l’URL de la ressource en cours d’envoi. Cette chaîne ne doit pas inclure le point d’interrogation de début ( ?).
[in, optional] Headers
En-têtes de requête pour l’opération push.
Vous ne devez pas fournir d’en-tête d’hôte, car HTTP.sys génère automatiquement les informations d’hôte correctes. HTTP.sys ne prend pas en charge les opérations push inter-origines, HTTP.sys applique et génère des informations sur l’hôte qui correspondent à la demande initiée par le client d’origine.
La demande push n’étant pas autorisée à avoir un corps d’entité, vous ne pouvez pas inclure un en-tête Content-Length différent de zéro ou un en-tête Transfer-Encoding.
Valeur retournée
Si la fonction réussit, elle retourne NO_ERROR.
Si la fonction échoue, elle retourne un code d’erreur système défini dans WinError.h.
Remarques
Vous devez appeler HttpDeclarePush avant d’envoyer des octets de réponse susceptibles d’amener le client à découvrir la sous-ressource elle-même. Le fait de ne pas observer cet ordre entraîne une course entre le serveur qui envoie la ressource et le client qui récupère les ressources, ce qui peut gaspiller la bande passante. L’application serveur doit uniquement utiliser HttpDeclarePush pour envoyer (push) les ressources dont l’application serveur est très sûre qu’elles sont nécessaires et qui ne sont pas déjà mises en cache par le client. Si l’application serveur envoie (push) d’autres ressources, une utilisation inutile de la bande passante et du processeur peut se produire.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 (applications de bureau uniquement) |
Serveur minimal pris en charge | Windows Server 2016 (applications de bureau uniquement) |
Plateforme cible | Windows |
En-tête | http.h |
Bibliothèque | Httpapi.lib |
DLL | Httpapi.dll |