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

Consulte también

HTTP_REQUEST_HEADERS

HTTP_VERB

HttpCreateRequestQueue