CompressionConfig (Apache Tomcat 9.0.119 API Documentation)
Description: declaration: package: org.apache.coyote, class: CompressionConfig

# Class CompressionConfig

java.lang.Object
org.apache.coyote.CompressionConfig

public class CompressionConfig extends Object
Configuration for HTTP response compression settings.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CompressionConfig()`
  Creates a new compression configuration with default settings.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getCompressibleMimeType()`
  Returns the comma-separated list of MIME types eligible for compression.
  `String[]`
  `getCompressibleMimeTypes()`
  Returns the array of MIME types eligible for compression.
  `String`
  `getCompression()`
  Return compression level.
  `int`
  `getCompressionLevel()`
  Returns the internal numeric compression level.
  `int`
  `getCompressionMinSize()`
  Returns the minimum response size in bytes required before compression is applied.
  `String`
  `getNoCompressionEncodings()`
  Returns the list of content encodings that indicate already-compressed content.
  `boolean`
  `getNoCompressionStrongETag()`
  Deprecated.
  Will be removed in Tomcat 10 where it will be hard-coded to `true`
  `String`
  `getNoCompressionUserAgents()`
  Obtain the String form of the regular expression that defines the user agents to not use gzip with.
  `Pattern`
  `getNoCompressionUserAgentsPattern()`
  Returns the compiled regular expression pattern for user agents that should not receive compressed responses.
  `void`
  `setCompressibleMimeType(String valueS)`
  Sets the comma-separated list of MIME types eligible for compression.
  `void`
  `setCompression(String compression)`
  Set compression level.
  `void`
  `setCompressionMinSize(int compressionMinSize)`
  Set Minimum size to trigger compression.
  `void`
  `setNoCompressionEncodings(String encodings)`
  Set the list of content encodings that indicate already-compressed content.
  `void`
  `setNoCompressionStrongETag(boolean noCompressionStrongETag)`
  Deprecated.
  Will be removed in Tomcat 10 where it will be hard-coded to `true`
  `void`
  `setNoCompressionUserAgents(String noCompressionUserAgents)`
  Set no compression user agent pattern.
  `boolean`
  `useCompression(Request request, Response response)`
  Determines if compression should be enabled for the given response and if it is, sets any necessary headers to mark it as such.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### CompressionConfig

    public CompressionConfig()
    Creates a new compression configuration with default settings.

- ## Method Details

  - ### getNoCompressionEncodings

    public String getNoCompressionEncodings()
    Returns the list of content encodings that indicate already-compressed content.
    Returns:
      comma-separated list of encoding names

  - ### setNoCompressionEncodings

    public void setNoCompressionEncodings(String encodings)
    Set the list of content encodings that indicate already-compressed content. When content is already encoded with one of these encodings, compression will not be applied to prevent double compression.
    Parameters:
      `encodings` - Comma-separated list of encoding names (e.g., "gzip,br.dflate")

  - ### setCompression

    public void setCompression(String compression)
    Set compression level.
    Parameters:
      `compression` - One of `on`, `force`, `off` or the minimum compression size in bytes which implies `on`

  - ### getCompression

    public String getCompression()
    Return compression level.
    Returns:
      The current compression level in string form (off/on/force)

  - ### getCompressionLevel

    public int getCompressionLevel()
    Returns the internal numeric compression level.
    Returns:
      0 for off, 1 for on, 2 for force

  - ### getNoCompressionUserAgents

    public String getNoCompressionUserAgents()
    Obtain the String form of the regular expression that defines the user agents to not use gzip with.
    Returns:
      The regular expression as a String

  - ### getNoCompressionUserAgentsPattern

    public Pattern getNoCompressionUserAgentsPattern()
    Returns the compiled regular expression pattern for user agents that should not receive compressed responses.
    Returns:
      the compiled pattern, or `null` if not configured

  - ### setNoCompressionUserAgents

    public void setNoCompressionUserAgents(String noCompressionUserAgents)
    Set no compression user agent pattern. Regular expression as supported by `Pattern`. e.g.: `gorilla|desesplorer|tigrus`.
    Parameters:
      `noCompressionUserAgents` - The regular expression for user agent strings for which compression should not be applied

  - ### getCompressibleMimeType

    public String getCompressibleMimeType()
    Returns the comma-separated list of MIME types eligible for compression.
    Returns:
      comma-separated MIME type string

  - ### setCompressibleMimeType

    public void setCompressibleMimeType(String valueS)
    Sets the comma-separated list of MIME types eligible for compression.
    Parameters:
      `valueS` - comma-separated MIME type string

  - ### getCompressibleMimeTypes

    public String[] getCompressibleMimeTypes()
    Returns the array of MIME types eligible for compression.
    Returns:
      array of MIME type strings

  - ### getCompressionMinSize

    public int getCompressionMinSize()
    Returns the minimum response size in bytes required before compression is applied.
    Returns:
      the minimum size in bytes

  - ### setCompressionMinSize

    public void setCompressionMinSize(int compressionMinSize)
    Set Minimum size to trigger compression.
    Parameters:
      `compressionMinSize` - The minimum content length required for compression in bytes

  - ### getNoCompressionStrongETag

    @Deprecated public boolean getNoCompressionStrongETag()
    Deprecated.
    Will be removed in Tomcat 10 where it will be hard-coded to `true`
    Determine if compression is disabled if the resource has a strong ETag.
    Returns:
      `true` if compression is disabled, otherwise `false`

  - ### setNoCompressionStrongETag

    @Deprecated public void setNoCompressionStrongETag(boolean noCompressionStrongETag)
    Deprecated.
    Will be removed in Tomcat 10 where it will be hard-coded to `true`
    Set whether compression is disabled for resources with a strong ETag.
    Parameters:
      `noCompressionStrongETag` - `true` if compression is disabled, otherwise `false`

  - ### useCompression

    public boolean useCompression(Request request, Response response)
    Determines if compression should be enabled for the given response and if it is, sets any necessary headers to mark it as such.
    Parameters:
      `request` - The request that triggered the response
      `response` - The response to consider compressing
    Returns:
      `true` if compression was enabled for the given response, otherwise `false`