HTTP/2 UDRs

The HTTP/2 UDR types are designed to exchange data between the workflows, and can be viewed in the UDR Internal Format Browser.

The supported HTTP/2 UDRs are as follows:

Push

The Push UDR can be used for sending additional resources belonging to a request.

The following fields are included in the Push UDR:

Field

Description

Field

Description

path (string)

Set the URI path to be used for the push.

request (RequestCycle (http))

The RequestCycle UDR the Push UDR belongs to.

Cookie

The Cookie UDR is used for including cookie information in Response UDRs.
 The following fields are included in the Cookie UDR:

Field

Description

Field

Description

domain (string)

The domain to which the cookie belongs.

expires (string)

The date and time when the cookie expires.

httponly (boolean)

If set to true, cookies will not be exposed through channels other than HTTP and HTTPS requests.

name (string)

The name of the cookie.

path (string)

The path to the page the cookie belongs to, for example "mydomain.com/mypage.html".

secure (boolean)

Indicates whether the data is sent in secure mode or not.

value (string)

The value of the cookie.

Response

The Response  UDR contains the response to the request and is incorporated in the RequestCycle UDR.

The following fields are included in the Response UDR:

Field

Description

Field

Description

body (any)

This field contains the message body, that is, the payload, of the response. For HEAD requests, a body is never present in the response. For all other request methods, responses are present with the following exceptions:

  • responses to CONNECT requests with status code 2xx

  • responses to requests with status code 1xx (informational)

  • responses to requests with status code 204 (no content)

  • responses to requests with status code 304 (not modified)

cookies (list<CookieUDR>)

This field contains any Cookie UDRs included.

headers (map<string,list<string>>)

This field is populated by all the headers present in the response. The map keys contain header field names and the content is stored in the corresponding map values.

httpVersion (string)

This field contains the HTTP version; HTTP/1 or HTTP/2.

mimetype (string)

The type of the content, for example "text/html", "image/gif", etc.

openAPIUDR (DRUDR)

This field is used if an OpenAPI profile has been associated with the HTTP/2 Server agent.

statusCode (int)

The HTTP status code, for example: 200 - OK, 404 - Not Found, etc.

MultipartSegment

The MultipartSegment UDR is used when sending requests containing multiple types of content, or when the content has been split up in multiple parts.
 The following fields are included in the MultipartSegment UDR:

Field

Description

Field

Description

content (bytearray)

The body of the message.

contentType (string)

The type of the content, for example "multipart/form-data", "multipart/mixed", etc.

filename (string)

The actual file name, for example "img.jpg".

name (string)

An informal name of the file, for example "myFile".

AuthToken

The AuthToken UDR is used for providing token information when the option Token Authentication is selected in the agent's configuration.

The following fields are included in the AuthToken UDR:

Field

Description

Field

Description

claims (map<sting,any>)

The payload and any additional claims, that is, any additional user information required for  authentication, for example website or zoneinfo.

token (string)

The security token used for authentication.

username (string)

The user name.

RequestCycle

When the HTTP/2 Server agent receives a request it converts it to a RequestCycle UDR that is routed into the workflow. The UDR will then get the Response field populated in the workflow before being routed back to the HTTP/2 Server agent.

The following fields are included in the RequestCycle UDR:

Field

Description

Field

Description

authToken (HttpAuthTokenUDR)

If Token Authentication is selected in the agent configuration, the AuthToken UDR contains the required information for authentication.

body (bytearray)

This field contains the message body, that is the payload, of the request. For a request, the presence of a message body is indicated by the presence of a Content-Length or Transfer-Encoding field.

clientHost (string)

The IP address or hostname of the client that is connecting to the server.

clientPort (int)

The port of the client that is connecting to the server.

contentType (string)

The type of the content, for example "text/html", "image/gif", etc.

context (any)

This field can be used in the workflow configuration to keep track of, and use, internal workflow information related to a RequestCycle UDR.

For instance, before you route a RequestCycle UDR to the HTTP/2 agent, store the TCPIPUDR from a TCP/IP collection agent in the Context field. You can then read the TCPIPUDR from the Context field in the RequestCycle UDR that contains the answer, and use it to send back a response to the TCP/IP collection agent.

cookies (list<string>)

Information about any cookies attached to the request.

headers (map<string,list<string>>)

This field is populated by all the headers present in the request, for example Date, Connection. The map keys contain header field names and the content is stored in the corresponding map values.

host (string)

The hostname or IP address where the HTTP server is running.

httpVersion (string)

This field contains the HTTP version; HTTP/1 or HTTP/2.

method (string)

The request method, for example GET or POST.

HTTP/2 supports the following methods; GET, POST, PUT, DELETE, and PATCH.

HEAD, CONNECT, OPTIONS, and TRACE are not supported.

multipartSegments (list<MultipartSegment (http)>)

If the request is of a multipart type, this field contains MultipartSegment UDRs.

parameters (map<string,string>)

This field contains any SETTINGS parameters included, for example Header Table Size, Max Concurrent Streams, etc.

password (string)

The password associated with the username for the account on the HTTP server.

path (string)

The path of the target URI.

port (string)

The HTTP server port number.

pushSupported (boolean)

Indicates whether push is supported. Push can be used with HTTP/2 but not with HTTP/1.

requestTimeout (int)

The number of milliseconds to wait for a response.

response (Response (http))

This field is populated by the contents of Response UDR.

secure (boolean)

Indicates whether the data is sent in secure mode or not.

username (string)

The username for the account on the HTTP server.