# H2O

the optimized HTTP/1.x, HTTP/2 server

×
Powered by Oktavia

## Configure > Headers Directives

This document describes the configuration directives of the headers handler.

### `"header.add"`

Description:

  Adds a new header line to the response headers, regardless if a header with the same name already exists.

  Example. Setting the `Set-Cookie` header

      header.add: "Set-Cookie: test=1"

Level:
  global, host, path, extension

### `"header.append"`

Description:

  Adds a new header line, or appends the value to the existing header with the same name, separated by `,`.

Level:
  global, host, path, extension

### `"header.merge"`

Description:

  Adds a new header line, or merges the value to the existing header of comma-separated values.

  The following example sets the `must-revalidate` attribute of the `Cache-Control` header when and only when the attribute is not yet being set.

  Example. Setting the `must-revalidate` attribute

      header.merge: "Cache-Control: must-revalidate"

Level:
  global, host, path, extension

### `"header.set"`

Description:

  Sets a header line, removing headers with the same name if exists.

  Example. Setting the `X-Content-Type-Options: nosniff` header

      header.set: "X-Content-Type-Options: nosniff"

Level:
  global, host, path, extension

### `"header.setifempty"`

Description:

  Sets a header line when and only when a header with the same name does not already exist.

Level:
  global, host, path, extension

### `"header.unset"`

Description:

  Removes headers with given name.

  Example. Removing the `X-Powered-By` header

      header.unset: "X-Powered-By"

Level:
  global, host, path, extension