org.apache.coyote.http11

## Class AbstractHttp11Protocol<S>

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

All Implemented Interfaces:
  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.ConnectionHandler<S>, AbstractProtocol.RecycledProcessors`

### Field Summary

Fields
`protected static StringManager` `sm`

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

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

### Constructor Summary

Constructors
Constructor and Description
`AbstractHttp11Protocol(AbstractEndpoint<S,?> endpoint)`

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`void` `addAllowedTrailerHeader(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.
`String` `getAlgorithm()`
`String` `getAllowedTrailerHeaders()`
`protected Set<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?
`String` `getCiphers()`
`String` `getClientAuth()`
`String` `getCompressibleMimeType()`
`String[]` `getCompressibleMimeTypes()`
`String` `getCompression()`
`protected int` `getCompressionLevel()`
`int` `getCompressionMinSize()`
`int` `getConnectionUploadTimeout()` Specifies a different (usually longer) connection timeout during data upload.
`String` `getContinueResponseTiming()`
`ContinueResponseTiming` `getContinueResponseTimingInternal()`
`String` `getCrlFile()`
`String` `getDefaultSSLHostConfigName()`
`boolean` `getDisableUploadTimeout()` Get the flag that controls upload time-outs.
`protected AbstractEndpoint<S,?>` `getEndpoint()` Over-ridden here to make the method visible to nested classes.
`String` `getKeyAlias()`
`String` `getKeyPass()`
`String` `getKeystoreFile()`
`String` `getKeystorePass()`
`String` `getKeystoreProvider()`
`String` `getKeystoreType()`
`int` `getMaxExtensionSize()`
`int` `getMaxHttpHeaderSize()`
`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(String negotiatedName)` Find a suitable handler for the protocol negotiated at the network layer.
`boolean` `getNoCompressionStrongETag()` Deprecated.
`String` `getNoCompressionUserAgents()`
`protected Pattern` `getNoCompressionUserAgentsPattern()`
`ObjectName` `getONameForUpgrade(String upgradeProtocol)`
`protected 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()`. Will be removed in Tomcat 10 onwards.
`String` `getRelaxedPathChars()`
`String` `getRelaxedQueryChars()`
`String` `getRestrictedUserAgents()` Get the string form of the regular expression that defines the User agents which should be restricted to HTTP/1.0 support.
`protected Pattern` `getRestrictedUserAgentsPattern()`
`boolean` `getSecure()`
`String` `getServer()`
`boolean` `getServerRemoveAppProvidedValues()` Should application provider values for the HTTP Server header be removed.
`int` `getSessionCacheSize()`
`int` `getSessionTimeout()`
`String` `getSSLCACertificateFile()`
`String` `getSSLCACertificatePath()`
`String` `getSSLCARevocationFile()`
`String` `getSSLCARevocationPath()`
`String` `getSSLCertificateChainFile()`
`String` `getSSLCertificateFile()`
`String` `getSSLCertificateKeyFile()`
`String` `getSSLCipherSuite()`
`boolean` `getSSLDisableCompression()`
`boolean` `getSSLDisableSessionTickets()`
`String` `getSslEnabledProtocols()`
`boolean` `getSSLHonorCipherOrder()`
`String` `getSSLPassword()`
`String` `getSslProtocol()`
`String` `getSSLProtocol()`
`String` `getSSLVerifyClient()`
`int` `getSSLVerifyDepth()`
`String` `getTrustManagerClassName()`
`int` `getTrustMaxCertLength()`
`String` `getTruststoreAlgorithm()`
`String` `getTruststoreFile()`
`String` `getTruststorePass()`
`String` `getTruststoreProvider()`
`String` `getTruststoreType()`
`UpgradeGroupInfo` `getUpgradeGroupInfo(String upgradeProtocol)`
`UpgradeProtocol` `getUpgradeProtocol(String upgradedName)` Find a suitable handler for the protocol upgraded name specified.
`boolean` `getUseKeepAliveResponseHeader()`
`boolean` `getUseSendfile()`
`boolean` `getUseServerCipherSuitesOrder()`
`void` `init()` Initialise the protocol.
`boolean` `isSSLEnabled()`
`void` `reloadSslHostConfig(String hostName)`
`void` `reloadSslHostConfigs()`
`void` `removeAllowedTrailerHeader(String header)`
`void` `setAlgorithm(String keyManagerAlgorithm)`
`void` `setAllowedTrailerHeaders(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(String ciphers)`
`void` `setClientAuth(String certificateVerification)`
`void` `setCompressibleMimeType(String valueS)`
`void` `setCompression(String compression)`
`void` `setCompressionMinSize(int compressionMinSize)`
`void` `setConnectionUploadTimeout(int timeout)` Set the upload timeout.
`void` `setContinueResponseTiming(String continueResponseTiming)`
`void` `setCrlFile(String certificateRevocationListFile)`
`void` `setDefaultSSLHostConfigName(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(String certificateKeyAlias)`
`void` `setKeyPass(String certificateKeyPassword)`
`void` `setKeystoreFile(String keystoreFile)`
`void` `setKeystorePass(String certificateKeystorePassword)`
`void` `setKeystoreProvider(String certificateKeystoreProvider)`
`void` `setKeystoreType(String certificateKeystoreType)`
`void` `setMaxExtensionSize(int maxExtensionSize)`
`void` `setMaxHttpHeaderSize(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(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)`. Will be removed in Tomcat 10 onwards.
`void` `setRelaxedPathChars(String relaxedPathChars)`
`void` `setRelaxedQueryChars(String relaxedQueryChars)`
`void` `setRestrictedUserAgents(String restrictedUserAgents)` Set restricted user agent list (which will downgrade the connector to HTTP/1.0 mode).
`void` `setSecure(boolean b)`
`void` `setServer(String server)` Set the server header name.
`void` `setServerRemoveAppProvidedValues(boolean serverRemoveAppProvidedValues)`
`void` `setSessionCacheSize(int sessionCacheSize)`
`void` `setSessionTimeout(int sessionTimeout)`
`void` `setSSLCACertificateFile(String caCertificateFile)`
`void` `setSSLCACertificatePath(String caCertificatePath)`
`void` `setSSLCARevocationFile(String certificateRevocationListFile)`
`void` `setSSLCARevocationPath(String certificateRevocationListPath)`
`void` `setSSLCertificateChainFile(String certificateChainFile)`
`void` `setSSLCertificateFile(String certificateFile)`
`void` `setSSLCertificateKeyFile(String certificateKeyFile)`
`void` `setSSLCipherSuite(String ciphers)`
`void` `setSSLDisableCompression(boolean disableCompression)`
`void` `setSSLDisableSessionTickets(boolean disableSessionTickets)`
`void` `setSSLEnabled(boolean SSLEnabled)`
`void` `setSslEnabledProtocols(String enabledProtocols)`
`void` `setSSLHonorCipherOrder(boolean honorCipherOrder)`
`void` `setSSLPassword(String certificateKeyPassword)`
`void` `setSslProtocol(String sslProtocol)`
`void` `setSSLProtocol(String sslProtocol)`
`void` `setSSLVerifyClient(String certificateVerification)`
`void` `setSSLVerifyDepth(int certificateVerificationDepth)`
`void` `setTrustManagerClassName(String trustManagerClassName)`
`void` `setTrustMaxCertLength(int certificateVerificationDepth)`
`void` `setTruststoreAlgorithm(String truststoreAlgorithm)`
`void` `setTruststoreFile(String truststoreFile)`
`void` `setTruststorePass(String truststorePassword)`
`void` `setTruststoreProvider(String truststoreProvider)`
`void` `setTruststoreType(String truststoreType)`
`void` `setUseKeepAliveResponseHeader(boolean useKeepAliveResponseHeader)`
`void` `setUseSendfile(boolean useSendfile)`
`void` `setUseServerCipherSuitesOrder(boolean honorCipherOrder)`
`boolean` `useCompression(Request request, Response response)`

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

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

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

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

### Methods inherited from interface org.apache.coyote.ProtocolHandler

`create, getDesiredBufferSize`

### Field Detail

#### sm

    protected static final StringManager sm

### Constructor Detail

#### AbstractHttp11Protocol

    public AbstractHttp11Protocol(AbstractEndpoint<S,?> endpoint)

### Method Detail

#### init

    public void init()
              throws Exception

Description copied from interface: `ProtocolHandler`
Initialise the protocol.

Specified by:
  `init` in interface `ProtocolHandler`
Overrides:
  `init` in class `AbstractProtocol<S>`
Throws:
  `Exception` - If the protocol handler fails to initialise

#### destroy

    public void destroy()
                 throws Exception

Description copied from interface: `ProtocolHandler`
Destroy the protocol (optional).

Specified by:
  `destroy` in interface `ProtocolHandler`
Overrides:
  `destroy` in class `AbstractProtocol<S>`
Throws:
  `Exception` - If the protocol handler fails to destroy

#### getProtocolName

    protected 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 String getContinueResponseTiming()

#### setContinueResponseTiming

    public void setContinueResponseTiming(String continueResponseTiming)

#### getContinueResponseTimingInternal

    public ContinueResponseTiming getContinueResponseTimingInternal()

#### getUseKeepAliveResponseHeader

    public boolean getUseKeepAliveResponseHeader()

#### setUseKeepAliveResponseHeader

    public void setUseKeepAliveResponseHeader(boolean useKeepAliveResponseHeader)

#### getRelaxedPathChars

    public String getRelaxedPathChars()

#### setRelaxedPathChars

    public void setRelaxedPathChars(String relaxedPathChars)

#### getRelaxedQueryChars

    public String getRelaxedQueryChars()

#### setRelaxedQueryChars

    public void setRelaxedQueryChars(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 FDORM auth.

Parameters:
  `maxSavePostSize` - The maximum size POST body to buffer in bytes

#### getMaxHttpHeaderSize

    public int getMaxHttpHeaderSize()

#### setMaxHttpHeaderSize

    public void setMaxHttpHeaderSize(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(String compression)

#### getCompression

    public String getCompression()

#### getCompressionLevel

    protected int getCompressionLevel()

#### getNoCompressionUserAgents

    public String getNoCompressionUserAgents()

#### getNoCompressionUserAgentsPattern

    protected Pattern getNoCompressionUserAgentsPattern()

#### setNoCompressionUserAgents

    public void setNoCompressionUserAgents(String noCompressionUserAgents)

#### getCompressibleMimeType

    public String getCompressibleMimeType()

#### setCompressibleMimeType

    public void setCompressibleMimeType(String valueS)

#### getCompressibleMimeTypes

    public 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 String getRestrictedUserAgents()

Get the string form of the regular expression that defines the User agents which should be restricted to HTTP/1.0 support.

Returns:
  The regular expression as a String

#### getRestrictedUserAgentsPattern

    protected Pattern getRestrictedUserAgentsPattern()

#### setRestrictedUserAgents

    public void setRestrictedUserAgents(String restrictedUserAgents)

Set restricted user agent list (which will downgrade the connector to HTTP/1.0 mode). Regular expression as supported by `Pattern`.

Parameters:
  `restrictedUserAgents` - The regular expression as supported by `Pattern` for the user agents e.g. "gorilla|desesplorer|tigrus"

#### getServer

    public String getServer()

#### setServer

    public void setServer(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(String commaSeparatedHeaders)

#### getAllowedTrailerHeadersInternal

    protected Set<String> getAllowedTrailerHeadersInternal()

#### getAllowedTrailerHeaders

    public String getAllowedTrailerHeaders()

#### addAllowedTrailerHeader

    public void addAllowedTrailerHeader(String header)

#### removeAllowedTrailerHeader

    public void removeAllowedTrailerHeader(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(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(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(String upgradeProtocol)

#### getONameForUpgrade

    public ObjectName getONameForUpgrade(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 String getDefaultSSLHostConfigName()

#### setDefaultSSLHostConfigName

    public void setDefaultSSLHostConfigName(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(String hostName)

#### getSslEnabledProtocols

    public String getSslEnabledProtocols()

#### setSslEnabledProtocols

    public void setSslEnabledProtocols(String enabledProtocols)

#### getSSLProtocol

    public String getSSLProtocol()

#### setSSLProtocol

    public void setSSLProtocol(String sslProtocol)

#### getKeystoreFile

    public String getKeystoreFile()

#### setKeystoreFile

    public void setKeystoreFile(String keystoreFile)

#### getSSLCertificateChainFile

    public String getSSLCertificateChainFile()

#### setSSLCertificateChainFile

    public void setSSLCertificateChainFile(String certificateChainFile)

#### getSSLCertificateFile

    public String getSSLCertificateFile()

#### setSSLCertificateFile

    public void setSSLCertificateFile(String certificateFile)

#### getSSLCertificateKeyFile

    public String getSSLCertificateKeyFile()

#### setSSLCertificateKeyFile

    public void setSSLCertificateKeyFile(String certificateKeyFile)

#### getAlgorithm

    public String getAlgorithm()

#### setAlgorithm

    public void setAlgorithm(String keyManagerAlgorithm)

#### getClientAuth

    public String getClientAuth()

#### setClientAuth

    public void setClientAuth(String certificateVerification)

#### getSSLVerifyClient

    public String getSSLVerifyClient()

#### setSSLVerifyClient

    public void setSSLVerifyClient(String certificateVerification)

#### getTrustMaxCertLength

    public int getTrustMaxCertLength()

#### setTrustMaxCertLength

    public void setTrustMaxCertLength(int certificateVerificationDepth)

#### getSSLVerifyDepth

    public int getSSLVerifyDepth()

#### setSSLVerifyDepth

    public void setSSLVerifyDepth(int certificateVerificationDepth)

#### getUseServerCipherSuitesOrder

    public boolean getUseServerCipherSuitesOrder()

#### setUseServerCipherSuitesOrder

    public void setUseServerCipherSuitesOrder(boolean honorCipherOrder)

#### getSSLHonorCipherOrder

    public boolean getSSLHonorCipherOrder()

#### setSSLHonorCipherOrder

    public void setSSLHonorCipherOrder(boolean honorCipherOrder)

#### getCiphers

    public String getCiphers()

#### setCiphers

    public void setCiphers(String ciphers)

#### getSSLCipherSuite

    public String getSSLCipherSuite()

#### setSSLCipherSuite

    public void setSSLCipherSuite(String ciphers)

#### getKeystorePass

    public String getKeystorePass()

#### setKeystorePass

    public void setKeystorePass(String certificateKeystorePassword)

#### getKeyPass

    public String getKeyPass()

#### setKeyPass

    public void setKeyPass(String certificateKeyPassword)

#### getSSLPassword

    public String getSSLPassword()

#### setSSLPassword

    public void setSSLPassword(String certificateKeyPassword)

#### getCrlFile

    public String getCrlFile()

#### setCrlFile

    public void setCrlFile(String certificateRevocationListFile)

#### getSSLCARevocationFile

    public String getSSLCARevocationFile()

#### setSSLCARevocationFile

    public void setSSLCARevocationFile(String certificateRevocationListFile)

#### getSSLCARevocationPath

    public String getSSLCARevocationPath()

#### setSSLCARevocationPath

    public void setSSLCARevocationPath(String certificateRevocationListPath)

#### getKeystoreType

    public String getKeystoreType()

#### setKeystoreType

    public void setKeystoreType(String certificateKeystoreType)

#### getKeystoreProvider

    public String getKeystoreProvider()

#### setKeystoreProvider

    public void setKeystoreProvider(String certificateKeystoreProvider)

#### getKeyAlias

    public String getKeyAlias()

#### setKeyAlias

    public void setKeyAlias(String certificateKeyAlias)

#### getTruststoreAlgorithm

    public String getTruststoreAlgorithm()

#### setTruststoreAlgorithm

    public void setTruststoreAlgorithm(String truststoreAlgorithm)

#### getTruststoreFile

    public String getTruststoreFile()

#### setTruststoreFile

    public void setTruststoreFile(String truststoreFile)

#### getTruststorePass

    public String getTruststorePass()

#### setTruststorePass

    public void setTruststorePass(String truststorePassword)

#### getTruststoreType

    public String getTruststoreType()

#### setTruststoreType

    public void setTruststoreType(String truststoreType)

#### getTruststoreProvider

    public String getTruststoreProvider()

#### setTruststoreProvider

    public void setTruststoreProvider(String truststoreProvider)

#### getSslProtocol

    public String getSslProtocol()

#### setSslProtocol

    public void setSslProtocol(String sslProtocol)

#### getSessionCacheSize

    public int getSessionCacheSize()

#### setSessionCacheSize

    public void setSessionCacheSize(int sessionCacheSize)

#### getSessionTimeout

    public int getSessionTimeout()

#### setSessionTimeout

    public void setSessionTimeout(int sessionTimeout)

#### getSSLCACertificatePath

    public String getSSLCACertificatePath()

#### setSSLCACertificatePath

    public void setSSLCACertificatePath(String caCertificatePath)

#### getSSLCACertificateFile

    public String getSSLCACertificateFile()

#### setSSLCACertificateFile

    public void setSSLCACertificateFile(String caCertificateFile)

#### getSSLDisableCompression

    public boolean getSSLDisableCompression()

#### setSSLDisableCompression

    public void setSSLDisableCompression(boolean disableCompression)

#### getSSLDisableSessionTickets

    public boolean getSSLDisableSessionTickets()

#### setSSLDisableSessionTickets

    public void setSSLDisableSessionTickets(boolean disableSessionTickets)

#### getTrustManagerClassName

    public String getTrustManagerClassName()

#### setTrustManagerClassName

    public void setTrustManagerClassName(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>`