# H2O

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

×
Powered by Oktavia

## Configure > Compress Directives

The compress handler performs on-the-fly compression - it compresses the contents of an HTTP response as it is being sent, if the client indicates itself to be capable of decompressing the response transparently with the use of `Accept-Encoding` header, and if the response is deemed compressible according to the following rules.

If `x-compress-hint` response header does not exist or the value is `auto`, then whether if the response is considered compressible depends on the `is_compressible` attribute assigned to the content type (see `file.mime.addtypes`). If `x-compress-hint` response header exists and the value is `on`, the response is always considered to be compressible. If the value of the response header is set to `off`, then the response never gets compressed.

The following are the configuration directives recognized by the handler.

since v2.0

### `"compress"`

Description:

  Enables on-the-fly compression of HTTP response.

  If the argument is `ON`, both brotli and gzip compression are enabled. If the argument is `OFF`, on-the-fly compression is disabled. If the argument is a sequence, the elements are the list of compression algorithms to be enabled. If the argument is a mapping, each key specifies the compression algorithm to be enabled, and the values specify the quality of the algorithms.

  When both brotli and gzip are enabled and if the client supports both, H2O is hard-coded to prefer brotli.

  Example. Enabling on-the-fly compression

      # enable all algorithms
      compress: ON

      # enable by name
      compress: [ gzip, brotli ]

      # enable gzip only
      compress: [ gzip ]

Level:
  global, host, path, extension
Default:
  `

      compress: OFF

  `
See also:
  `file.send-compressed`, `file.mime.addtypes`

since v2.0

### `"compress-minimum-size"`

Description:

  Defines the minimum size a files needs to have in order for H2O to compress the request.

Level:
  global, host, path, extension
Default:
  `

      compress-minimum-size: 100

  `

since v1.5

### `"gzip"`

Description:

  Enables on-the-fly compression of HTTP response using gzip.

  Equivalent to `compress: [ gzip ]`.
Level:
  global, host, path, extension
Default:
  `

      gzip: OFF

  `
See also:
  `compress`