# HttpRouteMatch

The criterion for determining a request match for this Route.

- Source: [`aws-appmesh/lib/route-spec.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-appmesh/lib/route-spec.ts#L41)
- Type last changed: v2.85.0 · 21 Jun 2023

## Example

```ts
declare const router: appmesh.VirtualRouter;
declare const node: appmesh.VirtualNode;

router.addRoute('route-http', {
  routeSpec: appmesh.RouteSpec.http({
    weightedTargets: [
      {
        virtualNode: node,
        weight: 50,
      },
      {
        virtualNode: node,
        weight: 50,
      },
    ],
    match: {
      path: appmesh.HttpRoutePathMatch.startsWith('/path-to-app'),
    },
  }),
});
```

## Properties

- `headers`: [HeaderMatch](/cdk/api/v2/docs/aws-cdk-lib.aws_appmesh.HeaderMatch.html)[] — Specifies the client request headers to match on.

  **Default:** do not match on headers

  All specified headers
  must match for the route to match.

- `method`: [HttpRouteMethod](/cdk/api/v2/docs/aws-cdk-lib.aws_appmesh.HttpRouteMethod.html) — The HTTP client request method to match on.

  **Default:** do not match on request method

- `path`: [HttpRoutePathMatch](/cdk/api/v2/docs/aws-cdk-lib.aws_appmesh.HttpRoutePathMatch.html) — Specifies how is the request matched based on the path part of its URL.

  **Default:** matches requests with all paths

- `port`: number — The port to match from the request.

  **Default:** do not match on port

- `protocol`: [HttpRouteProtocol](/cdk/api/v2/docs/aws-cdk-lib.aws_appmesh.HttpRouteProtocol.html) — The client request protocol to match on.

  **Default:** do not match on HTTP2 request protocol

  Applicable only for HTTP2 routes.

- `queryParameters`: [QueryParameterMatch](/cdk/api/v2/docs/aws-cdk-lib.aws_appmesh.QueryParameterMatch.html)[] — The query parameters to match on.

  **Default:** do not match on query parameters

  All specified query parameters must match for the route to match.
