Package org.apache.coyote.http11

## Class AbstractHttp11Protocol<S>

- java.lang.Object
- - org.apache.coyote.AbstractProtocol<S>
  - - org.apache.coyote.http11.AbstractHttp11Protocol<S>

- All Implemented Interfaces:
    `javax.management.MBeanRegistration`, `ProtocolHandler`
  Direct Known Subclasses:
    `AbstractHttp11JsseProtocol`, `Http11AprProtocol`

      public abstract class AbstractHttp11Protocol<S>
      extends AbstractProtocol<S>

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.coyote.AbstractProtocol

      `AbstractProtocol.AsyncTimeout, AbstractProtocol.ConnectionHandler<S>, AbstractProtocol.RecycledProcessors`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected static StringManager` | `sm` |

    - ### Fields inherited from class org.apache.coyote.AbstractProtocol

      `adapter, clientCertProvider, domain, mserver, oname, processorCache, rgOname`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractHttp11Protocol​(AbstractEndpoint<S,​?> endpoint)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addAllowedTrailerHeader​(java.lang.String header)` |
    `void` | `addSslHostConfig​(SSLHostConfig sslHostConfig)` | Add a new SSL configuration for a virtual host.
    `void` | `addUpgradeProtocol​(UpgradeProtocol upgradeProtocol)` | Add a new protocol for used by HTTP/1.1 upgrade or ALPN.
    `protected Processor` | `createProcessor()` | Create and configure a new Processor instance for the current protocol implementation.
    `protected Processor` | `createUpgradeProcessor​(SocketWrapperBase<?> socket, UpgradeToken upgradeToken)` |
    `void` | `destroy()` | Destroy the protocol (optional).
    `SSLHostConfig[]` | `findSslHostConfigs()` | Find all configured SSL virtual host configurations which will be used by SNI.
    `UpgradeProtocol[]` | `findUpgradeProtocols()` | Return all configured upgrade protocols.
    `java.lang.String` | `getAlgorithm()` |
    `java.lang.String` | `getAllowedTrailerHeaders()` |
    `protected java.util.Set<java.lang.String>` | `getAllowedTrailerHeadersInternal()` |
    `boolean` | `getAllowHostHeaderMismatch()` | Will Tomcat accept an HTTP 1.1 request where the host header does not agree with the host specified (if any) in the request line?
    `java.lang.String` | `getCiphers()` |
    `java.lang.String` | `getClientAuth()` |
    `java.lang.String` | `getCompressableMimeType()` | Deprecated. Use `getCompressibleMimeType()`
    `java.lang.String[]` | `getCompressableMimeTypes()` | Deprecated. Use `getCompressibleMimeTypes()`
    `java.lang.String` | `getCompressibleMimeType()` |
    `java.lang.String[]` | `getCompressibleMimeTypes()` |
    `java.lang.String` | `getCompression()` |
    `int` | `getCompressionMinSize()` |
    `int` | `getConnectionUploadTimeout()` | Specifies a different (usually longer) connection timeout during data upload.
    `java.lang.String` | `getContinueResponseTiming()` |
    `ContinueResponseTiming` | `getContinueResponseTimingInternal()` |
    `java.lang.String` | `getCrlFile()` |
    `java.lang.String` | `getDefaultSSLHostConfigName()` |
    `boolean` | `getDisableUploadTimeout()` | Get the flag that controls upload time-outs.
    `protected AbstractEndpoint<S,​?>` | `getEndpoint()`
    `java.lang.String` | `getKeyAlias()` |
    `java.lang.String` | `getKeyPass()` |
    `java.lang.String` | `getKeystoreFile()` |
    `java.lang.String` | `getKeystorePass()` |
    `java.lang.String` | `getKeystoreProvider()` |
    `java.lang.String` | `getKeystoreType()` |
    `int` | `getMaxExtensionSize()` |
    `int` | `getMaxHttpHeaderSize()` |
    `int` | `getMaxHttpRequestHeaderSize()` |
    `int` | `getMaxHttpResponseHeaderSize()` |
    `int` | `getMaxKeepAliveRequests()` |
    `int` | `getMaxSavePostSize()` | Return the maximum size of the post which will be saved during FORM or CLIENT-CERT authentication.
    `int` | `getMaxSwallowSize()` |
    `int` | `getMaxTrailerSize()` |
    `UpgradeProtocol` | `getNegotiatedProtocol​(java.lang.String negotiatedName)` | Find a suitable handler for the protocol negotiated at the network layer.
    `boolean` | `getNoCompressionStrongETag()` | Deprecated.
    `java.lang.String` | `getNoCompressionUserAgents()` |
    `javax.management.ObjectName` | `getONameForUpgrade​(java.lang.String upgradeProtocol)` |
    `protected java.lang.String` | `getProtocolName()` | Obtain the name of the protocol, (Http, Ajp, etc.).
    `boolean` | `getRejectIllegalHeader()` | If an HTTP request is received that contains an illegal header name or value (e.g. the header name is not a token) will the request be rejected (with a 400 response) or will the illegal header be ignored?
    `boolean` | `getRejectIllegalHeaderName()` | Deprecated. Now an alias for `getRejectIllegalHeader()`.
    `java.lang.String` | `getRelaxedPathChars()` |
    `java.lang.String` | `getRelaxedQueryChars()` |
    `java.lang.String` | `getRestrictedUserAgents()` |
    `boolean` | `getSecure()` |
    `java.lang.String` | `getServer()` |
    `boolean` | `getServerRemoveAppProvidedValues()` | Should application provider values for the HTTP Server header be removed.
    `int` | `getSessionCacheSize()` |
    `int` | `getSessionTimeout()` |
    `java.lang.String` | `getSSLCACertificateFile()` |
    `java.lang.String` | `getSSLCACertificatePath()` |
    `java.lang.String` | `getSSLCARevocationFile()` |
    `java.lang.String` | `getSSLCARevocationPath()` |
    `java.lang.String` | `getSSLCertificateChainFile()` |
    `java.lang.String` | `getSSLCertificateFile()` |
    `java.lang.String` | `getSSLCertificateKeyFile()` |
    `java.lang.String` | `getSSLCipherSuite()` |
    `boolean` | `getSSLDisableCompression()` |
    `boolean` | `getSSLDisableSessionTickets()` |
    `java.lang.String` | `getSslEnabledProtocols()` |
    `java.lang.String` | `getSSLHonorCipherOrder()` |
    `java.lang.String` | `getSSLPassword()` |
    `java.lang.String` | `getSslProtocol()` |
    `java.lang.String` | `getSSLProtocol()` |
    `java.lang.String` | `getSSLVerifyClient()` |
    `int` | `getSSLVerifyDepth()` |
    `java.lang.String` | `getTrustManagerClassName()` |
    `int` | `getTrustMaxCertLength()` |
    `java.lang.String` | `getTruststoreAlgorithm()` |
    `java.lang.String` | `getTruststoreFile()` |
    `java.lang.String` | `getTruststorePass()` |
    `java.lang.String` | `getTruststoreProvider()` |
    `java.lang.String` | `getTruststoreType()` |
    `UpgradeGroupInfo` | `getUpgradeGroupInfo​(java.lang.String upgradeProtocol)` |
    `UpgradeProtocol` | `getUpgradeProtocol​(java.lang.String upgradedName)` | Find a suitable handler for the protocol upgraded name specified.
    `boolean` | `getUseKeepAliveResponseHeader()` |
    `boolean` | `getUseSendfile()` |
    `java.lang.String` | `getUseServerCipherSuitesOrder()` |
    `void` | `init()` | Initialise the protocol.
    `boolean` | `isSSLEnabled()` |
    `void` | `reloadSslHostConfig​(java.lang.String hostName)` |
    `void` | `reloadSslHostConfigs()` |
    `void` | `removeAllowedTrailerHeader​(java.lang.String header)` |
    `void` | `setAlgorithm​(java.lang.String keyManagerAlgorithm)` |
    `void` | `setAllowedTrailerHeaders​(java.lang.String commaSeparatedHeaders)` |
    `void` | `setAllowHostHeaderMismatch​(boolean allowHostHeaderMismatch)` | Will Tomcat accept an HTTP 1.1 request where the host header does not agree with the host specified (if any) in the request line?
    `void` | `setCiphers​(java.lang.String ciphers)` |
    `void` | `setClientAuth​(java.lang.String certificateVerification)` |
    `void` | `setCompressableMimeType​(java.lang.String valueS)` | Deprecated. Use `setCompressibleMimeType(String)`
    `void` | `setCompressibleMimeType​(java.lang.String valueS)` |
    `void` | `setCompression​(java.lang.String compression)` |
    `void` | `setCompressionMinSize​(int compressionMinSize)` |
    `void` | `setConnectionUploadTimeout​(int timeout)` | Set the upload timeout.
    `void` | `setContinueResponseTiming​(java.lang.String continueResponseTiming)` |
    `void` | `setCrlFile​(java.lang.String certificateRevocationListFile)` |
    `void` | `setDefaultSSLHostConfigName​(java.lang.String defaultSSLHostConfigName)` |
    `void` | `setDisableUploadTimeout​(boolean isDisabled)` | Set the flag to control whether a separate connection timeout is used during upload of a request body.
    `void` | `setKeyAlias​(java.lang.String certificateKeyAlias)` |
    `void` | `setKeyPass​(java.lang.String certificateKeyPassword)` |
    `void` | `setKeystoreFile​(java.lang.String keystoreFile)` |
    `void` | `setKeystorePass​(java.lang.String certificateKeystorePassword)` |
    `void` | `setKeystoreProvider​(java.lang.String certificateKeystoreProvider)` |
    `void` | `setKeystoreType​(java.lang.String certificateKeystoreType)` |
    `void` | `setMaxExtensionSize​(int maxExtensionSize)` |
    `void` | `setMaxHttpHeaderSize​(int valueI)` |
    `void` | `setMaxHttpRequestHeaderSize​(int valueI)` |
    `void` | `setMaxHttpResponseHeaderSize​(int valueI)` |
    `void` | `setMaxKeepAliveRequests​(int mkar)` | Set the maximum number of Keep-Alive requests to allow.
    `void` | `setMaxSavePostSize​(int maxSavePostSize)` | Set the maximum size of a POST which will be buffered during FORM or CLIENT-CERT authentication.
    `void` | `setMaxSwallowSize​(int maxSwallowSize)` |
    `void` | `setMaxTrailerSize​(int maxTrailerSize)` |
    `void` | `setNoCompressionStrongETag​(boolean noCompressionStrongETag)` | Deprecated.
    `void` | `setNoCompressionUserAgents​(java.lang.String noCompressionUserAgents)` |
    `void` | `setRejectIllegalHeader​(boolean rejectIllegalHeader)` | If an HTTP request is received that contains an illegal header name or value (e.g. the header name is not a token) should the request be rejected (with a 400 response) or should the illegal header be ignored?
    `void` | `setRejectIllegalHeaderName​(boolean rejectIllegalHeaderName)` | Deprecated. Now an alias for `setRejectIllegalHeader(boolean)`.
    `void` | `setRelaxedPathChars​(java.lang.String relaxedPathChars)` |
    `void` | `setRelaxedQueryChars​(java.lang.String relaxedQueryChars)` |
    `void` | `setRestrictedUserAgents​(java.lang.String valueS)` |
    `void` | `setSecure​(boolean b)` |
    `void` | `setServer​(java.lang.String server)` | Set the server header name.
    `void` | `setServerRemoveAppProvidedValues​(boolean serverRemoveAppProvidedValues)` |
    `void` | `setSessionCacheSize​(int sessionCacheSize)` |
    `void` | `setSessionTimeout​(int sessionTimeout)` |
    `void` | `setSSLCACertificateFile​(java.lang.String caCertificateFile)` |
    `void` | `setSSLCACertificatePath​(java.lang.String caCertificatePath)` |
    `void` | `setSSLCARevocationFile​(java.lang.String certificateRevocationListFile)` |
    `void` | `setSSLCARevocationPath​(java.lang.String certificateRevocationListPath)` |
    `void` | `setSSLCertificateChainFile​(java.lang.String certificateChainFile)` |
    `void` | `setSSLCertificateFile​(java.lang.String certificateFile)` |
    `void` | `setSSLCertificateKeyFile​(java.lang.String certificateKeyFile)` |
    `void` | `setSSLCipherSuite​(java.lang.String ciphers)` |
    `void` | `setSSLDisableCompression​(boolean disableCompression)` |
    `void` | `setSSLDisableSessionTickets​(boolean disableSessionTickets)` |
    `void` | `setSSLEnabled​(boolean SSLEnabled)` |
    `void` | `setSslEnabledProtocols​(java.lang.String enabledProtocols)` |
    `void` | `setSSLHonorCipherOrder​(java.lang.String honorCipherOrder)` |
    `void` | `setSSLPassword​(java.lang.String certificateKeyPassword)` |
    `void` | `setSslProtocol​(java.lang.String sslProtocol)` |
    `void` | `setSSLProtocol​(java.lang.String sslProtocol)` |
    `void` | `setSSLVerifyClient​(java.lang.String certificateVerification)` |
    `void` | `setSSLVerifyDepth​(int certificateVerificationDepth)` |
    `void` | `setTrustManagerClassName​(java.lang.String trustManagerClassName)` |
    `void` | `setTrustMaxCertLength​(int certificateVerificationDepth)` |
    `void` | `setTruststoreAlgorithm​(java.lang.String truststoreAlgorithm)` |
    `void` | `setTruststoreFile​(java.lang.String truststoreFile)` |
    `void` | `setTruststorePass​(java.lang.String truststorePassword)` |
    `void` | `setTruststoreProvider​(java.lang.String truststoreProvider)` |
    `void` | `setTruststoreType​(java.lang.String truststoreType)` |
    `void` | `setUseKeepAliveResponseHeader​(boolean useKeepAliveResponseHeader)` |
    `void` | `setUseSendfile​(boolean useSendfile)` |
    `void` | `setUseServerCipherSuitesOrder​(java.lang.String honorCipherOrder)` |
    `boolean` | `useCompression​(Request request, Response response)` |

    - ### Methods inherited from class org.apache.coyote.AbstractProtocol

      `addWaitingProcessor, awaitConnectionsClose, closeServerSocketGraceful, getAcceptCount, getAcceptorThreadCount, getAcceptorThreadPriority, getAdapter, getAddress, getAsyncTimeout, getBacklog, getClientCertProvider, getConnectionCount, getConnectionLinger, getConnectionTimeout, getDomain, getExecutor, getGlobalRequestProcessorMBeanName, getHandler, getKeepAliveTimeout, getLocalPort, getLog, getMaxConnections, getMaxHeaderCount, getMaxThreads, getMinSpareThreads, getName, getNameIndex, getNamePrefix, getObjectName, getPort, getPortOffset, getPortWithOffset, getProcessorCache, getProperty, getSendReasonPhrase, getSoLinger, getSoTimeout, getTcpNoDelay, getThreadPriority, getWaitingProcessorCount, isAprRequired, isSendfileSupported, pause, postDeregister, postRegister, preDeregister, preRegister, removeWaitingProcessor, resume, setAcceptCount, setAcceptorThreadCount, setAcceptorThreadPriority, setAdapter, setAddress, setBacklog, setClientCertProvider, setConnectionLinger, setConnectionTimeout, setExecutor, setHandler, setKeepAliveTimeout, setMaxConnections, setMaxHeaderCount, setMaxThreads, setMinSpareThreads, setPort, setPortOffset, setProcessorCache, setProperty, setSendReasonPhrase, setSoLinger, setSoTimeout, setTcpNoDelay, setThreadPriority, start, stop`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### sm

          protected static final StringManager sm

  - ### Constructor Detail

    - #### AbstractHttp11Protocol

          public AbstractHttp11Protocol​(AbstractEndpoint<S,​?> endpoint)

  - ### Method Detail

    - #### init

          public void init()
                    throws java.lang.Exception

      Description copied from interface: `ProtocolHandler`
      Initialise the protocol.
      Specified by:
        `init` in interface `ProtocolHandler`
      Overrides:
        `init` in class `AbstractProtocol<S>`
      Throws:
        `java.lang.Exception` - If the protocol handler fails to initialise

    - #### destroy

          public void destroy()
                       throws java.lang.Exception

      Description copied from interface: `ProtocolHandler`
      Destroy the protocol (optional).
      Specified by:
        `destroy` in interface `ProtocolHandler`
      Overrides:
        `destroy` in class `AbstractProtocol<S>`
      Throws:
        `java.lang.Exception` - If the protocol handler fails to destroy

    - #### getProtocolName

          protected java.lang.String getProtocolName()

      Description copied from class: `AbstractProtocol`
      Obtain the name of the protocol, (Http, Ajp, etc.). Used with JMX.
      Specified by:
        `getProtocolName` in class `AbstractProtocol<S>`
      Returns:
        the protocol name

    - #### getEndpoint

          protected AbstractEndpoint<S,​?> getEndpoint()

      Over-ridden here to make the method visible to nested classes.

      Overrides:
        `getEndpoint` in class `AbstractProtocol<S>`

    - #### getContinueResponseTiming

          public java.lang.String getContinueResponseTiming()

    - #### setContinueResponseTiming

          public void setContinueResponseTiming​(java.lang.String continueResponseTiming)

    - #### getContinueResponseTimingInternal

          public ContinueResponseTiming getContinueResponseTimingInternal()

    - #### getUseKeepAliveResponseHeader

          public boolean getUseKeepAliveResponseHeader()

    - #### setUseKeepAliveResponseHeader

          public void setUseKeepAliveResponseHeader​(boolean useKeepAliveResponseHeader)

    - #### getRelaxedPathChars

          public java.lang.String getRelaxedPathChars()

    - #### setRelaxedPathChars

          public void setRelaxedPathChars​(java.lang.String relaxedPathChars)

    - #### getRelaxedQueryChars

          public java.lang.String getRelaxedQueryChars()

    - #### setRelaxedQueryChars

          public void setRelaxedQueryChars​(java.lang.String relaxedQueryChars)

    - #### getAllowHostHeaderMismatch

          public boolean getAllowHostHeaderMismatch()

      Will Tomcat accept an HTTP 1.1 request where the host header does not agree with the host specified (if any) in the request line?
      Returns:
        `true` if Tomcat will allow such requests, otherwise `false`

    - #### setAllowHostHeaderMismatch

          public void setAllowHostHeaderMismatch​(boolean allowHostHeaderMismatch)

      Will Tomcat accept an HTTP 1.1 request where the host header does not agree with the host specified (if any) in the request line?
      Parameters:
        `allowHostHeaderMismatch` - `true` to allow such requests, `false` to reject them with a 400

    - #### getRejectIllegalHeader

          public boolean getRejectIllegalHeader()

      If an HTTP request is received that contains an illegal header name or value (e.g. the header name is not a token) will the request be rejected (with a 400 response) or will the illegal header be ignored?
      Returns:
        `true` if the request will be rejected or `false` if the header will be ignored

    - #### setRejectIllegalHeader

          public void setRejectIllegalHeader​(boolean rejectIllegalHeader)

      If an HTTP request is received that contains an illegal header name or value (e.g. the header name is not a token) should the request be rejected (with a 400 response) or should the illegal header be ignored?
      Parameters:
        `rejectIllegalHeader` - `true` to reject requests with illegal header names or values, `false` to ignore the header

    - #### getRejectIllegalHeaderName

          @Deprecated
          public boolean getRejectIllegalHeaderName()

      Deprecated.
      Now an alias for `getRejectIllegalHeader()`. Will be removed in Tomcat 10 onwards.
      If an HTTP request is received that contains an illegal header name or value (e.g. the header name is not a token) will the request be rejected (with a 400 response) or will the illegal header be ignored?
      Returns:
        `true` if the request will be rejected or `false` if the header will be ignored

    - #### setRejectIllegalHeaderName

          @Deprecated
          public void setRejectIllegalHeaderName​(boolean rejectIllegalHeaderName)

      Deprecated.
      Now an alias for `setRejectIllegalHeader(boolean)`. Will be removed in Tomcat 10 onwards.
      If an HTTP request is received that contains an illegal header name or value (e.g. the header name is not a token) should the request be rejected (with a 400 response) or should the illegal header be ignored?
      Parameters:
        `rejectIllegalHeaderName` - `true` to reject requests with illegal header names or values, `false` to ignore the header

    - #### getMaxSavePostSize

          public int getMaxSavePostSize()

      Return the maximum size of the post which will be saved during FORM or CLIENT-CERT authentication.
      Returns:
        The size in bytes

    - #### setMaxSavePostSize

          public void setMaxSavePostSize​(int maxSavePostSize)

      Set the maximum size of a POST which will be buffered during FORM or CLIENT-CERT authentication. When a POST is received where the security constraints require a client certificate, the POST body needs to be buffered while an SSL handshake takes place to obtain the certificate. A similar buffering is required during FORM auth.
      Parameters:
        `maxSavePostSize` - The maximum size POST body to buffer in bytes

    - #### getMaxHttpHeaderSize

          public int getMaxHttpHeaderSize()

    - #### setMaxHttpHeaderSize

          public void setMaxHttpHeaderSize​(int valueI)

    - #### getMaxHttpRequestHeaderSize

          public int getMaxHttpRequestHeaderSize()

    - #### setMaxHttpRequestHeaderSize

          public void setMaxHttpRequestHeaderSize​(int valueI)

    - #### getMaxHttpResponseHeaderSize

          public int getMaxHttpResponseHeaderSize()

    - #### setMaxHttpResponseHeaderSize

          public void setMaxHttpResponseHeaderSize​(int valueI)

    - #### getConnectionUploadTimeout

          public int getConnectionUploadTimeout()

      Specifies a different (usually longer) connection timeout during data upload. Default is 5 minutes as in Apache HTTPD server.
      Returns:
        The timeout in milliseconds

    - #### setConnectionUploadTimeout

          public void setConnectionUploadTimeout​(int timeout)

      Set the upload timeout.
      Parameters:
        `timeout` - Upload timeout in milliseconds

    - #### getDisableUploadTimeout

          public boolean getDisableUploadTimeout()

      Get the flag that controls upload time-outs. If true, the connectionUploadTimeout will be ignored and the regular socket timeout will be used for the full duration of the connection.
      Returns:
        `true` if the separate upload timeout is disabled

    - #### setDisableUploadTimeout

          public void setDisableUploadTimeout​(boolean isDisabled)

      Set the flag to control whether a separate connection timeout is used during upload of a request body.
      Parameters:
        `isDisabled` - `true` if the separate upload timeout should be disabled

    - #### setCompression

          public void setCompression​(java.lang.String compression)

    - #### getCompression

          public java.lang.String getCompression()

    - #### getNoCompressionUserAgents

          public java.lang.String getNoCompressionUserAgents()

    - #### setNoCompressionUserAgents

          public void setNoCompressionUserAgents​(java.lang.String noCompressionUserAgents)

    - #### getCompressableMimeType

          @Deprecated
          public java.lang.String getCompressableMimeType()

      Deprecated.
      Use `getCompressibleMimeType()`
      Returns:
        See `getCompressibleMimeType()`

    - #### setCompressableMimeType

          @Deprecated
          public void setCompressableMimeType​(java.lang.String valueS)

      Deprecated.
      Use `setCompressibleMimeType(String)`
      Parameters:
        `valueS` - See `setCompressibleMimeType(String)`

    - #### getCompressableMimeTypes

          @Deprecated
          public java.lang.String[] getCompressableMimeTypes()

      Deprecated.
      Use `getCompressibleMimeTypes()`
      Returns:
        See `getCompressibleMimeTypes()`

    - #### getCompressibleMimeType

          public java.lang.String getCompressibleMimeType()

    - #### setCompressibleMimeType

          public void setCompressibleMimeType​(java.lang.String valueS)

    - #### getCompressibleMimeTypes

          public java.lang.String[] getCompressibleMimeTypes()

    - #### getCompressionMinSize

          public int getCompressionMinSize()

    - #### setCompressionMinSize

          public void setCompressionMinSize​(int compressionMinSize)

    - #### getNoCompressionStrongETag

          @Deprecated
          public boolean getNoCompressionStrongETag()

      Deprecated.

    - #### setNoCompressionStrongETag

          @Deprecated
          public void setNoCompressionStrongETag​(boolean noCompressionStrongETag)

      Deprecated.

    - #### useCompression

          public boolean useCompression​(Request request,
                                        Response response)

    - #### getRestrictedUserAgents

          public java.lang.String getRestrictedUserAgents()

    - #### setRestrictedUserAgents

          public void setRestrictedUserAgents​(java.lang.String valueS)

    - #### getServer

          public java.lang.String getServer()

    - #### setServer

          public void setServer​(java.lang.String server)

      Set the server header name.
      Parameters:
        `server` - The new value to use for the server header

    - #### getServerRemoveAppProvidedValues

          public boolean getServerRemoveAppProvidedValues()

      Should application provider values for the HTTP Server header be removed. Note that if `server` is set, any application provided value will be over-ridden.
      Returns:
        `true` if application provided values should be removed, otherwise `false`

    - #### setServerRemoveAppProvidedValues

          public void setServerRemoveAppProvidedValues​(boolean serverRemoveAppProvidedValues)

    - #### getMaxTrailerSize

          public int getMaxTrailerSize()

    - #### setMaxTrailerSize

          public void setMaxTrailerSize​(int maxTrailerSize)

    - #### getMaxExtensionSize

          public int getMaxExtensionSize()

    - #### setMaxExtensionSize

          public void setMaxExtensionSize​(int maxExtensionSize)

    - #### getMaxSwallowSize

          public int getMaxSwallowSize()

    - #### setMaxSwallowSize

          public void setMaxSwallowSize​(int maxSwallowSize)

    - #### getSecure

          public boolean getSecure()

    - #### setSecure

          public void setSecure​(boolean b)

    - #### setAllowedTrailerHeaders

          public void setAllowedTrailerHeaders​(java.lang.String commaSeparatedHeaders)

    - #### getAllowedTrailerHeadersInternal

          protected java.util.Set<java.lang.String> getAllowedTrailerHeadersInternal()

    - #### getAllowedTrailerHeaders

          public java.lang.String getAllowedTrailerHeaders()

    - #### addAllowedTrailerHeader

          public void addAllowedTrailerHeader​(java.lang.String header)

    - #### removeAllowedTrailerHeader

          public void removeAllowedTrailerHeader​(java.lang.String header)

    - #### addUpgradeProtocol

          public void addUpgradeProtocol​(UpgradeProtocol upgradeProtocol)

      Description copied from interface: `ProtocolHandler`
      Add a new protocol for used by HTTP/1.1 upgrade or ALPN.
      Parameters:
        `upgradeProtocol` - the protocol

    - #### findUpgradeProtocols

          public UpgradeProtocol[] findUpgradeProtocols()

      Description copied from interface: `ProtocolHandler`
      Return all configured upgrade protocols.
      Returns:
        the protocols

    - #### getNegotiatedProtocol

          public UpgradeProtocol getNegotiatedProtocol​(java.lang.String negotiatedName)

      Description copied from class: `AbstractProtocol`
      Find a suitable handler for the protocol negotiated at the network layer.
      Specified by:
        `getNegotiatedProtocol` in class `AbstractProtocol<S>`
      Parameters:
        `negotiatedName` - The name of the requested negotiated protocol.
      Returns:
        The instance where `UpgradeProtocol.getAlpnName()` matches the requested protocol

    - #### getUpgradeProtocol

          public UpgradeProtocol getUpgradeProtocol​(java.lang.String upgradedName)

      Description copied from class: `AbstractProtocol`
      Find a suitable handler for the protocol upgraded name specified. This is used for direct connection protocol selection.
      Specified by:
        `getUpgradeProtocol` in class `AbstractProtocol<S>`
      Parameters:
        `upgradedName` - The name of the requested negotiated protocol.
      Returns:
        The instance where `UpgradeProtocol.getAlpnName()` matches the requested protocol

    - #### getUpgradeGroupInfo

          public UpgradeGroupInfo getUpgradeGroupInfo​(java.lang.String upgradeProtocol)

    - #### getONameForUpgrade

          public javax.management.ObjectName getONameForUpgrade​(java.lang.String upgradeProtocol)

    - #### isSSLEnabled

          public boolean isSSLEnabled()

    - #### setSSLEnabled

          public void setSSLEnabled​(boolean SSLEnabled)

    - #### getUseSendfile

          public boolean getUseSendfile()

    - #### setUseSendfile

          public void setUseSendfile​(boolean useSendfile)

    - #### getMaxKeepAliveRequests

          public int getMaxKeepAliveRequests()

      Returns:
        The maximum number of requests which can be performed over a keep-alive connection. The default is the same as for Apache HTTP Server (100).

    - #### setMaxKeepAliveRequests

          public void setMaxKeepAliveRequests​(int mkar)

      Set the maximum number of Keep-Alive requests to allow. This is to safeguard from DoS attacks. Setting to a negative value disables the limit.
      Parameters:
        `mkar` - The new maximum number of Keep-Alive requests allowed

    - #### getDefaultSSLHostConfigName

          public java.lang.String getDefaultSSLHostConfigName()

    - #### setDefaultSSLHostConfigName

          public void setDefaultSSLHostConfigName​(java.lang.String defaultSSLHostConfigName)

    - #### addSslHostConfig

          public void addSslHostConfig​(SSLHostConfig sslHostConfig)

      Description copied from interface: `ProtocolHandler`
      Add a new SSL configuration for a virtual host.
      Parameters:
        `sslHostConfig` - the configuration

    - #### findSslHostConfigs

          public SSLHostConfig[] findSslHostConfigs()

      Description copied from interface: `ProtocolHandler`
      Find all configured SSL virtual host configurations which will be used by SNI.
      Returns:
        the configurations

    - #### reloadSslHostConfigs

          public void reloadSslHostConfigs()

    - #### reloadSslHostConfig

          public void reloadSslHostConfig​(java.lang.String hostName)

    - #### getSslEnabledProtocols

          public java.lang.String getSslEnabledProtocols()

    - #### setSslEnabledProtocols

          public void setSslEnabledProtocols​(java.lang.String enabledProtocols)

    - #### getSSLProtocol

          public java.lang.String getSSLProtocol()

    - #### setSSLProtocol

          public void setSSLProtocol​(java.lang.String sslProtocol)

    - #### getKeystoreFile

          public java.lang.String getKeystoreFile()

    - #### setKeystoreFile

          public void setKeystoreFile​(java.lang.String keystoreFile)

    - #### getSSLCertificateChainFile

          public java.lang.String getSSLCertificateChainFile()

    - #### setSSLCertificateChainFile

          public void setSSLCertificateChainFile​(java.lang.String certificateChainFile)

    - #### getSSLCertificateFile

          public java.lang.String getSSLCertificateFile()

    - #### setSSLCertificateFile

          public void setSSLCertificateFile​(java.lang.String certificateFile)

    - #### getSSLCertificateKeyFile

          public java.lang.String getSSLCertificateKeyFile()

    - #### setSSLCertificateKeyFile

          public void setSSLCertificateKeyFile​(java.lang.String certificateKeyFile)

    - #### getAlgorithm

          public java.lang.String getAlgorithm()

    - #### setAlgorithm

          public void setAlgorithm​(java.lang.String keyManagerAlgorithm)

    - #### getClientAuth

          public java.lang.String getClientAuth()

    - #### setClientAuth

          public void setClientAuth​(java.lang.String certificateVerification)

    - #### getSSLVerifyClient

          public java.lang.String getSSLVerifyClient()

    - #### setSSLVerifyClient

          public void setSSLVerifyClient​(java.lang.String certificateVerification)

    - #### getTrustMaxCertLength

          public int getTrustMaxCertLength()

    - #### setTrustMaxCertLength

          public void setTrustMaxCertLength​(int certificateVerificationDepth)

    - #### getSSLVerifyDepth

          public int getSSLVerifyDepth()

    - #### setSSLVerifyDepth

          public void setSSLVerifyDepth​(int certificateVerificationDepth)

    - #### getUseServerCipherSuitesOrder

          public java.lang.String getUseServerCipherSuitesOrder()

    - #### setUseServerCipherSuitesOrder

          public void setUseServerCipherSuitesOrder​(java.lang.String honorCipherOrder)

    - #### getSSLHonorCipherOrder

          public java.lang.String getSSLHonorCipherOrder()

    - #### setSSLHonorCipherOrder

          public void setSSLHonorCipherOrder​(java.lang.String honorCipherOrder)

    - #### getCiphers

          public java.lang.String getCiphers()

    - #### setCiphers

          public void setCiphers​(java.lang.String ciphers)

    - #### getSSLCipherSuite

          public java.lang.String getSSLCipherSuite()

    - #### setSSLCipherSuite

          public void setSSLCipherSuite​(java.lang.String ciphers)

    - #### getKeystorePass

          public java.lang.String getKeystorePass()

    - #### setKeystorePass

          public void setKeystorePass​(java.lang.String certificateKeystorePassword)

    - #### getKeyPass

          public java.lang.String getKeyPass()

    - #### setKeyPass

          public void setKeyPass​(java.lang.String certificateKeyPassword)

    - #### getSSLPassword

          public java.lang.String getSSLPassword()

    - #### setSSLPassword

          public void setSSLPassword​(java.lang.String certificateKeyPassword)

    - #### getCrlFile

          public java.lang.String getCrlFile()

    - #### setCrlFile

          public void setCrlFile​(java.lang.String certificateRevocationListFile)

    - #### getSSLCARevocationFile

          public java.lang.String getSSLCARevocationFile()

    - #### setSSLCARevocationFile

          public void setSSLCARevocationFile​(java.lang.String certificateRevocationListFile)

    - #### getSSLCARevocationPath

          public java.lang.String getSSLCARevocationPath()

    - #### setSSLCARevocationPath

          public void setSSLCARevocationPath​(java.lang.String certificateRevocationListPath)

    - #### getKeystoreType

          public java.lang.String getKeystoreType()

    - #### setKeystoreType

          public void setKeystoreType​(java.lang.String certificateKeystoreType)

    - #### getKeystoreProvider

          public java.lang.String getKeystoreProvider()

    - #### setKeystoreProvider

          public void setKeystoreProvider​(java.lang.String certificateKeystoreProvider)

    - #### getKeyAlias

          public java.lang.String getKeyAlias()

    - #### setKeyAlias

          public void setKeyAlias​(java.lang.String certificateKeyAlias)

    - #### getTruststoreAlgorithm

          public java.lang.String getTruststoreAlgorithm()

    - #### setTruststoreAlgorithm

          public void setTruststoreAlgorithm​(java.lang.String truststoreAlgorithm)

    - #### getTruststoreFile

          public java.lang.String getTruststoreFile()

    - #### setTruststoreFile

          public void setTruststoreFile​(java.lang.String truststoreFile)

    - #### getTruststorePass

          public java.lang.String getTruststorePass()

    - #### setTruststorePass

          public void setTruststorePass​(java.lang.String truststorePassword)

    - #### getTruststoreType

          public java.lang.String getTruststoreType()

    - #### setTruststoreType

          public void setTruststoreType​(java.lang.String truststoreType)

    - #### getTruststoreProvider

          public java.lang.String getTruststoreProvider()

    - #### setTruststoreProvider

          public void setTruststoreProvider​(java.lang.String truststoreProvider)

    - #### getSslProtocol

          public java.lang.String getSslProtocol()

    - #### setSslProtocol

          public void setSslProtocol​(java.lang.String sslProtocol)

    - #### getSessionCacheSize

          public int getSessionCacheSize()

    - #### setSessionCacheSize

          public void setSessionCacheSize​(int sessionCacheSize)

    - #### getSessionTimeout

          public int getSessionTimeout()

    - #### setSessionTimeout

          public void setSessionTimeout​(int sessionTimeout)

    - #### getSSLCACertificatePath

          public java.lang.String getSSLCACertificatePath()

    - #### setSSLCACertificatePath

          public void setSSLCACertificatePath​(java.lang.String caCertificatePath)

    - #### getSSLCACertificateFile

          public java.lang.String getSSLCACertificateFile()

    - #### setSSLCACertificateFile

          public void setSSLCACertificateFile​(java.lang.String caCertificateFile)

    - #### getSSLDisableCompression

          public boolean getSSLDisableCompression()

    - #### setSSLDisableCompression

          public void setSSLDisableCompression​(boolean disableCompression)

    - #### getSSLDisableSessionTickets

          public boolean getSSLDisableSessionTickets()

    - #### setSSLDisableSessionTickets

          public void setSSLDisableSessionTickets​(boolean disableSessionTickets)

    - #### getTrustManagerClassName

          public java.lang.String getTrustManagerClassName()

    - #### setTrustManagerClassName

          public void setTrustManagerClassName​(java.lang.String trustManagerClassName)

    - #### createProcessor

          protected Processor createProcessor()

      Description copied from class: `AbstractProtocol`
      Create and configure a new Processor instance for the current protocol implementation.
      Specified by:
        `createProcessor` in class `AbstractProtocol<S>`
      Returns:
        A fully configured Processor instance that is ready to use

    - #### createUpgradeProcessor

          protected Processor createUpgradeProcessor​(SocketWrapperBase<?> socket,
                                                     UpgradeToken upgradeToken)

      Specified by:
        `createUpgradeProcessor` in class `AbstractProtocol<S>`