HTTP_COOKED_URL structure (http.h)

The HTTP_COOKED_URL structure contains a validated, canonical, UTF-16 Unicode-encoded URL request string together with pointers into it and element lengths. This is the string that the HTTP Server API matches against registered UrlPrefix strings in order to route the request appropriately.

Syntax

typedef struct _HTTP_COOKED_URL {
  USHORT FullUrlLength;
  USHORT HostLength;
  USHORT AbsPathLength;
  USHORT QueryStringLength;
  PCWSTR pFullUrl;
  PCWSTR pHost;
  PCWSTR pAbsPath;
  PCWSTR pQueryString;
} HTTP_COOKED_URL, *PHTTP_COOKED_URL;

Members

FullUrlLength

Size, in bytes, of the data pointed to by the pFullUrl member, not including a terminating null character.

HostLength

Size, in bytes, of the data pointed to by the pHost member.

AbsPathLength

Size, in bytes, of the data pointed to by the pAbsPath member.

QueryStringLength

Size, in bytes, of the data pointed to by the pQueryString member.

pFullUrl

Pointer to the scheme element at the beginning of the URL (must be either "http://..." or "https://...").

pHost

Pointer to the first character in the host element, immediately following the double slashes at the end of the scheme element.

pAbsPath

Pointer to the third forward slash ("/") in the string. In a UrlPrefix string, this is the slash immediately preceding the relativeUri element.

pQueryString

Pointer to the first question mark (?) in the string, or NULL if there is none.

Remarks

For example, if pFullUrl is "http://www.fabrikam.com/path1/path2/file.ext?n1=v1&n2=v2", then pHost points to "www.fabrikam", pAbsPath points to "/path1/…" and pQueryString points to "?n1=v1…".

Requirements

Requirement Value
Minimum supported client Windows Vista, Windows XP with SP2 [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Header http.h

See also

HTTP Server API Version 1.0 Structures

HTTP_REQUEST