Función HttpDeclarePush (http.h)
Declara una relación de recurso a subrecurso que se va a usar para una inserción de servidor HTTP. HTTP.sys, a continuación, realiza una inserción de servidor HTTP 2.0 para el recurso determinado, si el protocolo subyacente, la conexión, el cliente y las directivas permiten la operación de inserción.
Sintaxis
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
);
Parámetros
[in] RequestQueueHandle
Identificador de una cola de solicitudes HTTP.sys que devolvió la función HttpCreateRequestQueue .
[in] RequestId
Identificador opaco de la solicitud que declara la operación de inserción. La solicitud debe ser del identificador de cola especificado.
[in] Verb
Verbo HTTP que se va a usar para la operación de inserción. La operación de inserción de HTTP.sys solo admite HttpVerbGET y HttpVerbHEAD.
[in] Path
Parte de la ruta de acceso de la dirección URL del recurso que se va a insertar.
[in, optional] Query
Parte de la consulta de la dirección URL del recurso que se va a insertar. Esta cadena no debe incluir el signo de interrogación inicial (?).
[in, optional] Headers
Encabezados de solicitud para la operación de inserción.
No debe proporcionar un encabezado Host, ya que HTTP.sys genera automáticamente la información correcta del host. HTTP.sys no admite operaciones de inserción entre orígenes, por lo que HTTP.sys aplica y genera información de host que coincide con la solicitud iniciada por el cliente original.
No se permite que la solicitud de inserción tenga un cuerpo de entidad, por lo que no se puede incluir un encabezado Content-Length distinto de cero ni ningún encabezado Transfer-Encoding.
Valor devuelto
Si la función se realiza correctamente, devuelve NO_ERROR.
Si se produce un error en la función, devuelve un código de error del sistema definido en WinError.h.
Comentarios
Debe llamar a HttpDeclarePush antes de enviar los bytes de respuesta que harían que el cliente detectara el propio subrecurso. Si no se observa este orden, se produce una carrera entre el servidor que está insertando el recurso y el cliente que recupera los recursos, lo que puede desperdiciar ancho de banda. La aplicación de servidor solo debe usar HttpDeclarePush para insertar recursos que la aplicación de servidor tiene alta confianza y que el cliente aún no almacena en caché. Si la aplicación de servidor inserta otros recursos, puede producirse un uso innecesario del ancho de banda y la CPU.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2016 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | http.h |
Library | Httpapi.lib |
Archivo DLL | Httpapi.dll |