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 メンバーには、pUnknownVerb メンバーが指す文字列のサイズ (バイト単位) が含まれ、終端の null 文字は含まれません。 VerbHttpVerbUnknown と等しくない場合、UnknownVerbLength は 0 に等しくなります。

RawUrlLength

pRawUrl メンバーが指す未処理の URL 文字列のサイズ (バイト単位)。終端の null 文字は含まれません。

pUnknownVerb

Verb メンバーが HttpVerbUnknownpUnknownVerb と等しい場合は、この要求の HTTP 動詞を含むオクテットの null で終わる文字列を指します。それ以外の場合、アプリケーションはこのパラメーターを無視します。

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

Secure Sockets Layer (SSL) 要求の未加工の接続 ID。

pSslInfo

要求が受信された接続に関する Secure Sockets Layer (SSL) 情報を含む HTTP_SSL_INFO 構造体へのポインター。

解説

pRawUrl メンバーに含まれる未処理の URL は、追跡と統計のみを目的としています。 その他の目的では、 CookedUrl メンバーに含まれる処理済みの正規 URL を使用します。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header 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