HTTP_REQUEST_V1 구조체(http.h)

HTTP_REQUEST 구조를 사용하여 특정 요청과 연결된 데이터를 반환합니다.

코드에서 직접 HTTP_REQUEST_V1 사용하지 마세요. 대신 HTTP_REQUEST 사용하여 코드가 컴파일된 운영 체제에 따라 적절한 버전이 사용되도록 합니다.

구문

typedef struct _HTTP_REQUEST_V1 {
  ULONG                  Flags;
  HTTP_CONNECTION_ID     ConnectionId;
  HTTP_REQUEST_ID        RequestId;
  HTTP_URL_CONTEXT       UrlContext;
  HTTP_VERSION           Version;
  HTTP_VERB              Verb;
  USHORT                 UnknownVerbLength;
  USHORT                 RawUrlLength;
  PCSTR                  pUnknownVerb;
  PCSTR                  pRawUrl;
  HTTP_COOKED_URL        CookedUrl;
  HTTP_TRANSPORT_ADDRESS Address;
  HTTP_REQUEST_HEADERS   Headers;
  ULONGLONG              BytesReceived;
  USHORT                 EntityChunkCount;
  PHTTP_DATA_CHUNK       pEntityChunks;
  HTTP_RAW_CONNECTION_ID RawConnectionId;
  PHTTP_SSL_INFO         pSslInfo;
} HTTP_REQUEST_V1, *PHTTP_REQUEST_V1;

멤버

Flags

다음 플래그 값 중 0개 이상의 조합이 OR과 적절히 결합될 수 있습니다.

의미
HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS
이 요청에 대해 읽을 엔터티 본문이 더 있습니다. 이는 여러 읽기에 걸쳐 있는 들어오는 요청에만 적용됩니다.

이 값을 설정하지 않으면 전체 엔터티 본문이 pEntityChunks 로 지정된 버퍼에 복사되었거나 요청에 엔터티 본문이 포함되지 않았습니다.

HTTP_REQUEST_FLAG_IP_ROUTED
요청은 호스트 및 IP 바인딩을 기반으로 라우팅되었습니다. 애플리케이션은 이 요청에 대한 커널 캐시 항목을 플러시하는 동안 로컬 IP를 반영해야 합니다.

WINDOWS Server 2003 SP1 및 Windows XP SP2: 이 플래그는 지원되지 않습니다.

HTTP_REQUEST_FLAG_HTTP2
HTTP/2를 통해 요청이 수신되었음을 나타냅니다.

ConnectionId

요청이 수신된 연결의 식별자입니다. HttpWaitForDisconnect 또는 HttpReceiveClientCertificate를 호출할 때 이 값을 사용합니다.

RequestId

HttpReceiveRequestEntityBody, HttpSendHttpResponse 및/또는 HttpSendResponseEntityBody를 호출할 때 요청을 식별하는 데 사용되는 값입니다.

UrlContext

pRawUrl 매개 변수의 URL과 연결된 컨텍스트입니다.

WINDOWS Server 2003 SP1 및 Windows XP SP2:

Version

이 요청에 지정된 HTTP 버전을 포함하는 HTTP_VERSION 구조체입니다.

Verb

이 요청과 연결된 HTTP 동사입니다. 이 멤버는 의 값 중 하나일 수 있습니다.
HTTP_VERB 열거형입니다.

UnknownVerbLength

Verb 멤버에 HttpVerbUnknown과 같은 값이 포함된 경우 UnknownVerbLength 멤버는 종료 null 문자를 포함하지 않고 pUnknownVerb 멤버가 가리키는 문자열의 크기(바이트)를 포함합니다. 동사가HttpVerbUnknown과 같지 않으면 UnknownVerbLength는 0과 같습니다.

RawUrlLength

종료 null 문자를 포함하지 않고 pRawUrl 멤버가 가리키는 처리되지 않은 URL 문자열의 크기(바이트)입니다.

pUnknownVerb

동사 멤버가 HttpVerbUnknownpUnknownVerb과 같으면 이 요청에 대한 HTTP 동사가 포함된 null로 끝나는 octet 문자열을 가리킵니다. 그렇지 않으면 애플리케이션이 이 매개 변수를 무시합니다.

pRawUrl

이 요청이 대상으로 하는 처리되지 않은 원래 URL을 포함하는 옥텟 문자열에 대한 포인터입니다. 추적 또는 통계 목적으로만 처리되지 않은 이 URL을 사용합니다. CookedUrl 멤버는 일반적으로 사용할 URL의 정식 형식을 포함합니다.

CookedUrl

이 요청이 대상으로 하는 URL의 구문 분석된 정식 와이드 문자 버전을 포함하는 HTTP_COOKED_URL 구조체입니다. 이는 원시 URL이 아닌 HTTP 수신기가 수행해야 하는 URL 버전입니다.

Address

이 요청에 대한 연결에 대한 전송 주소를 포함하는 HTTP_TRANSPORT_ADDRESS 구조체입니다.

Headers

이 요청에 지정된 헤더를 포함하는 HTTP_REQUEST_HEADERS 구조체입니다.

BytesReceived

이 요청을 구성하는 네트워크에서 받은 총 바이트 수입니다.

EntityChunkCount

pEntityChunks 배열의 요소 수입니다. 엔터티 본문이 복사되지 않은 경우 이 값은 0입니다.

pEntityChunks

엔터티 본문을 구성하는 데이터 블록을 포함하는 HTTP_DATA_CHUNK 구조체의 배열에 대한 포인터입니다. httpReceiveHttpRequest 는 HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY 플래그 집합으로 호출되지 않는 한 엔터티 본문을 복사하지 않습니다.

RawConnectionId

SSL(Secure Sockets Layer) 요청에 대한 원시 연결 ID입니다.

pSslInfo

요청이 수신된 연결에 대한 SSL(Secure Sockets Layer) 정보가 포함된 HTTP_SSL_INFO 구조체에 대한 포인터입니다.

설명

pRawUrl 멤버에 포함된 처리되지 않은 URL은 추적 및 통계 목적으로만 사용됩니다. 다른 용도로 , CookedUrl 멤버에 포함된 처리된 정식 URL을 사용합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
머리글 http.h

참고 항목

HTTP Server API 버전 2.0 구조체

HTTP_COOKED_URL

HTTP_DATA_CHUNK

HTTP_REQUEST

HTTP_REQUEST_V2

HTTP_RESPONSE

HTTP_SSL_INFO

HTTP_TRANSPORT_ADDRESS

HTTP_VERB

HttpReceiveHttpRequest

HttpReceiveRequestEntityBody

HttpSendHttpResponse

HttpSendResponseEntityBody