HttpDeclarePush-Funktion (http.h)
Deklariert eine Ressourcen-zu-Unterressourcen-Beziehung, die für einen HTTP-Serverpush verwendet werden soll. HTTP.sys führt dann einen HTTP 2.0-Serverpush für die angegebene Ressource aus, wenn das zugrunde liegende Protokoll, die Verbindung, der Client und die Richtlinien den Pushvorgang zulassen.
Syntax
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
);
Parameter
[in] RequestQueueHandle
Das Handle für eine HTTP.sys Anforderungswarteschlange, die von der HttpCreateRequestQueue-Funktion zurückgegeben wurde.
[in] RequestId
Der undurchsichtige Bezeichner der Anforderung, die den Pushvorgang deklariert. Die Anforderung muss aus dem angegebenen Warteschlangenhandle stammen.
[in] Verb
Das HTTP-Verb, das für den Pushvorgang verwendet werden soll. Der HTTP.sys Pushvorgang unterstützt nur HttpVerbGET und HttpVerbHEAD.
[in] Path
Der Pfadteil der URL für die Ressource, die per Push übertragen wird.
[in, optional] Query
Der Abfrageteil der URL für die Ressource, die per Push übertragen wird. Diese Zeichenfolge sollte nicht das führende Fragezeichen (?) enthalten.
[in, optional] Headers
Die Anforderungsheader für den Pushvorgang.
Sie sollten keinen Hostheader angeben, da HTTP.sys automatisch die richtigen Hostinformationen generiert. HTTP.sys unterstützt keine ursprungsübergreifenden Pushvorgänge, sodass HTTP.sys Hostinformationen erzwingt und generiert, die der ursprünglichen vom Client initiierten Anforderung entsprechen.
Die Pushanforderung darf nicht über einen Entitätstext verfügen, sodass Sie keinen Inhaltslängenheader oder Transfer-Encoding-Header einschließen können.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird NO_ERROR zurückgegeben.
Wenn die Funktion fehlschlägt, gibt sie einen in WinError.h definierten Systemfehlercode zurück.
Hinweise
Sie sollten HttpDeclarePush aufrufen, bevor Sie Antwortbytes senden, die dazu führen würden, dass der Client die Unterressource selbst ermittelt. Wenn Diese Reihenfolge nicht beachtet wird, führt dies zu einem Wettlauf zwischen dem Server, der die Ressource per Push sendet, und dem Client, der die Ressourcen abruft, wodurch Bandbreite verschwendet werden kann. Die Serveranwendung sollte httpDeclarePush nur verwenden, um Ressourcen zu pushen, von denen die Serveranwendung sehr sicher ist, dass sie benötigt werden und noch nicht vom Client zwischengespeichert werden. Wenn die Serveranwendung andere Ressourcen pusht, kann es zu einer unnötigen Auslastung von Bandbreite und CPU kommen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2016 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | http.h |
Bibliothek | Httpapi.lib |
DLL | Httpapi.dll |