# CacheHeaderBehavior

Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin.

- Source: [`aws-cloudfront/lib/cache-policy.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-cloudfront/lib/cache-policy.ts#L290)

## Example

```ts
// Creating a custom cache policy for a Distribution -- all parameters optional
declare const bucketOrigin: origins.S3Origin;
const myCachePolicy = new cloudfront.CachePolicy(this, 'myCachePolicy', {
  cachePolicyName: 'MyPolicy',
  comment: 'A default policy',
  defaultTtl: Duration.days(2),
  minTtl: Duration.minutes(1),
  maxTtl: Duration.days(10),
  cookieBehavior: cloudfront.CacheCookieBehavior.all(),
  headerBehavior: cloudfront.CacheHeaderBehavior.allowList('X-CustomHeader'),
  queryStringBehavior: cloudfront.CacheQueryStringBehavior.denyList('username'),
  enableAcceptEncodingGzip: true,
  enableAcceptEncodingBrotli: true,
});
new cloudfront.Distribution(this, 'myDistCustomPolicy', {
  defaultBehavior: {
    origin: bucketOrigin,
    cachePolicy: myCachePolicy,
  },
});
```

## Properties

- `behavior`: string — If no headers will be passed, or an allow list of headers.

- `headers`: string[] — The headers for the allow/deny list, if applicable.

## Methods

- `allowList(...headers: string[]): CacheHeaderBehavior // chainable` (static) — Listed headers are included in the cache key and are automatically included in requests that CloudFront sends to the origin.

- `none(): CacheHeaderBehavior // chainable` (static) — HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin.
