다음을 통해 공유


HttpDeclarePush 함수(http.h)

HTTP 서버 푸시에 사용할 리소스-하위 리소스 관계를 선언합니다. 그런 다음 HTTP.sys 기본 프로토콜, 연결, 클라이언트 및 정책이 푸시 작업을 허용하는 경우 지정된 리소스에 대해 HTTP 2.0 서버 푸시를 수행합니다.

구문

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
);

매개 변수

[in] RequestQueueHandle

HttpCreateRequestQueue 함수가 반환한 HTTP.sys 요청 큐에 대한 핸들입니다.

[in] RequestId

푸시 작업을 선언하는 요청의 불투명 식별자입니다. 요청은 지정된 큐 핸들에서 온 것이어야 합니다.

[in] Verb

푸시 작업에 사용할 HTTP 동사입니다. HTTP.sys 푸시 작업은 HttpVerbGETHttpVerbHEAD만 지원합니다.

[in] Path

푸시되는 리소스에 대한 URL의 경로 부분입니다.

[in, optional] Query

푸시되는 리소스에 대한 URL의 쿼리 부분입니다. 이 문자열에는 선행 물음표(?)가 포함되어서는 안 됩니다.

[in, optional] Headers

푸시 작업에 대한 요청 헤더입니다.

HTTP.sys 올바른 호스트 정보를 자동으로 생성하므로 호스트 헤더를 제공하지 않아야 합니다. HTTP.sys 원본 간 푸시 작업을 지원하지 않으므로 HTTP.sys 원래 클라이언트 시작 요청과 일치하는 호스트 정보를 적용하고 생성합니다.

푸시 요청에 엔터티 본문이 있을 수 없으므로 0이 아닌 Content-Length 헤더 또는 Transfer-Encoding 헤더를 포함할 수 없습니다.

반환 값

함수가 성공하면 NO_ERROR 반환합니다.

함수가 실패하면 WinError.h에 정의된 시스템 오류 코드를 반환합니다.

설명

클라이언트가 하위 리소스 자체를 검색하도록 하는 응답 바이트를 보내기 전에 HttpDeclarePush 를 호출해야 합니다. 이 순서를 관찰하지 못하면 리소스를 푸시하는 서버와 리소스를 검색하는 클라이언트 간의 경합이 발생하며 대역폭을 낭비할 수 있습니다. 서버 애플리케이션은 HttpDeclarePush 만 사용하여 서버 애플리케이션이 필요하고 클라이언트에서 아직 캐시하지 않은 리소스를 푸시해야 합니다. 서버 애플리케이션이 다른 리소스를 푸시하는 경우 대역폭 및 CPU를 불필요하게 사용할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2016 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 http.h
라이브러리 Httpapi.lib
DLL Httpapi.dll

추가 정보

HTTP_REQUEST_HEADERS

HTTP_VERB

HttpCreateRequestQueue