@ManagedObject(value="HTTP Configuration") public class HttpConfiguration extends Object implements Dumpable
This class is a holder of HTTP configuration for use by the
HttpChannel
class. Typically an HTTPConfiguration instance
is instantiated and passed to a ConnectionFactory
that can
create HTTP channels (e.g. HTTP, AJP or FCGI).
The configuration held by this class is not for the wire protocol, but for the interpretation and handling of HTTP requests that could be transported by a variety of protocols.
Modifier and Type | Class and Description |
---|---|
static interface |
HttpConfiguration.ConnectionFactory |
static interface |
HttpConfiguration.Customizer
An interface that allows a request object to be customized
for a particular HTTP connector configuration.
|
Modifier and Type | Field and Description |
---|---|
static String |
SERVER_VERSION |
Constructor and Description |
---|
HttpConfiguration() |
HttpConfiguration(HttpConfiguration config)
Creates a configuration from another.
|
Modifier and Type | Method and Description |
---|---|
void |
addCustomizer(HttpConfiguration.Customizer customizer)
Adds a
HttpConfiguration.Customizer that is invoked for every
request received. |
void |
addFormEncodedMethod(String method)
Adds a form encoded HTTP Method
|
String |
dump() |
void |
dump(Appendable out,
String indent)
Dump this object (and children) into an Appendable using the provided indent after any new lines.
|
long |
getBlockingTimeout()
Deprecated.
Replaced by
getMinResponseDataRate() and getMinRequestDataRate() |
CookieCompliance |
getCookieCompliance()
Deprecated.
|
<T> T |
getCustomizer(Class<T> type) |
List<HttpConfiguration.Customizer> |
getCustomizers() |
Set<String> |
getFormEncodedMethods() |
int |
getHeaderCacheSize() |
long |
getIdleTimeout()
The max idle time is applied to an HTTP request for IO operations and
delayed dispatch.
|
int |
getMaxErrorDispatches() |
long |
getMinRequestDataRate() |
long |
getMinResponseDataRate() |
MultiPartFormDataCompliance |
getMultipartFormDataCompliance() |
int |
getOutputAggregationSize() |
int |
getOutputBufferSize() |
CookieCompliance |
getRequestCookieCompliance() |
int |
getRequestHeaderSize() |
CookieCompliance |
getResponseCookieCompliance() |
int |
getResponseHeaderSize() |
int |
getSecurePort() |
String |
getSecureScheme() |
boolean |
getSendDateHeader()
Indicates if the
Date header will be sent in responses. |
boolean |
getSendServerVersion() |
boolean |
getSendXPoweredBy() |
boolean |
isCookieCompliance(CookieCompliance compliance)
Deprecated.
|
boolean |
isDelayDispatchUntilContent() |
boolean |
isFormEncodedMethod(String method)
Tests whether the HTTP method supports
x-www-form-urlencoded content |
boolean |
isNotifyRemoteAsyncErrors() |
boolean |
isPersistentConnectionsEnabled() |
void |
setBlockingTimeout(long blockingTimeout)
Deprecated.
Replaced by
setMinResponseDataRate(long) and setMinRequestDataRate(long) |
void |
setCookieCompliance(CookieCompliance compliance)
Deprecated.
|
void |
setCustomizers(List<HttpConfiguration.Customizer> customizers)
Sets the
HttpConfiguration.Customizer s that are invoked for every
request received. |
void |
setDelayDispatchUntilContent(boolean delay) |
void |
setFormEncodedMethods(String... methods)
Sets the form encoded HTTP methods.
|
void |
setHeaderCacheSize(int headerCacheSize) |
void |
setIdleTimeout(long timeoutMs)
The max idle time is applied to an HTTP request for IO operations and
delayed dispatch.
|
void |
setMaxErrorDispatches(int max) |
void |
setMinRequestDataRate(long bytesPerSecond) |
void |
setMinResponseDataRate(long bytesPerSecond)
Sets an minimum response content data rate.
|
void |
setMultiPartFormDataCompliance(MultiPartFormDataCompliance multiPartCompliance)
Sets the compliance level for multipart/form-data handling.
|
void |
setNotifyRemoteAsyncErrors(boolean notifyRemoteAsyncErrors) |
void |
setOutputAggregationSize(int outputAggregationSize)
Set the max size of the response content write that is copied into the aggregate buffer.
|
void |
setOutputBufferSize(int outputBufferSize)
Set the size of the buffer into which response content is aggregated
before being sent to the client.
|
void |
setPersistentConnectionsEnabled(boolean persistentConnectionsEnabled) |
void |
setRequestCookieCompliance(CookieCompliance cookieCompliance) |
void |
setRequestHeaderSize(int requestHeaderSize)
Larger headers will allow for more and/or larger cookies plus larger form content encoded
in a URL.
|
void |
setResponseCookieCompliance(CookieCompliance cookieCompliance) |
void |
setResponseHeaderSize(int responseHeaderSize)
Larger headers will allow for more and/or larger cookies and longer HTTP headers (eg for redirection).
|
void |
setSecurePort(int securePort)
Sets the TCP/IP port used for CONFIDENTIAL and INTEGRAL redirections.
|
void |
setSecureScheme(String secureScheme)
Set the URI scheme used for CONFIDENTIAL and INTEGRAL redirections.
|
void |
setSendDateHeader(boolean sendDateHeader)
Indicates if the
Date header should be sent in responses. |
void |
setSendServerVersion(boolean sendServerVersion) |
void |
setSendXPoweredBy(boolean sendXPoweredBy) |
String |
toString() |
void |
writePoweredBy(Appendable out,
String preamble,
String postamble) |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
dump, dumpContainer, dumpIterable, dumpMapEntries, dumpObject, dumpObjects, dumpSelf, named
public static final String SERVER_VERSION
public HttpConfiguration()
public HttpConfiguration(HttpConfiguration config)
config
- The configuration to copy.public void addCustomizer(HttpConfiguration.Customizer customizer)
Adds a HttpConfiguration.Customizer
that is invoked for every
request received.
Customizers are often used to interpret optional headers (eg ForwardedRequestCustomizer
) or
optional protocol semantics (eg SecureRequestCustomizer
).
customizer
- A request customizerpublic List<HttpConfiguration.Customizer> getCustomizers()
public <T> T getCustomizer(Class<T> type)
@ManagedAttribute(value="The size in bytes of the output buffer used to aggregate HTTP output") public int getOutputBufferSize()
@ManagedAttribute(value="The maximum size in bytes for HTTP output to be aggregated") public int getOutputAggregationSize()
@ManagedAttribute(value="The maximum allowed size in bytes for an HTTP request header") public int getRequestHeaderSize()
@ManagedAttribute(value="The maximum allowed size in bytes for an HTTP response header") public int getResponseHeaderSize()
@ManagedAttribute(value="The maximum allowed size in bytes for an HTTP header field cache") public int getHeaderCacheSize()
@ManagedAttribute(value="The port to which Integral or Confidential security constraints are redirected") public int getSecurePort()
@ManagedAttribute(value="The scheme with which Integral or Confidential security constraints are redirected") public String getSecureScheme()
@ManagedAttribute(value="Whether persistent connections are enabled") public boolean isPersistentConnectionsEnabled()
@ManagedAttribute(value="The idle timeout in ms for I/O operations during the handling of an HTTP request") public long getIdleTimeout()
The max idle time is applied to an HTTP request for IO operations and delayed dispatch.
public void setIdleTimeout(long timeoutMs)
The max idle time is applied to an HTTP request for IO operations and delayed dispatch.
timeoutMs
- the max idle time in ms or if == 0 implies an infinite timeout, <0
implies no HTTP channel timeout and the connection timeout is used instead.@ManagedAttribute(value="Total timeout in ms for blocking I/O operations. DEPRECATED!", readonly=true) @Deprecated public long getBlockingTimeout()
getMinResponseDataRate()
and getMinRequestDataRate()
This timeout is in addition to the Connector.getIdleTimeout()
, and applies
to the total operation (as opposed to the idle timeout that applies to the time no
data is being sent). This applies only to blocking operations and does not affect
asynchronous read and write.
@Deprecated public void setBlockingTimeout(long blockingTimeout)
setMinResponseDataRate(long)
and setMinRequestDataRate(long)
This timeout is in addition to the Connector.getIdleTimeout()
, and applies
to the total operation (as opposed to the idle timeout that applies to the time no
data is being sent).This applies only to blocking operations and does not affect
asynchronous read and write.
blockingTimeout
- -1, for no blocking timeout (default), 0 for a blocking timeout equal to the
idle timeout; >0 for a timeout in ms applied to the total blocking operation.public void setPersistentConnectionsEnabled(boolean persistentConnectionsEnabled)
public void setSendServerVersion(boolean sendServerVersion)
@ManagedAttribute(value="Whether to send the Server header in responses") public boolean getSendServerVersion()
public void writePoweredBy(Appendable out, String preamble, String postamble) throws IOException
IOException
public void setSendXPoweredBy(boolean sendXPoweredBy)
@ManagedAttribute(value="Whether to send the X-Powered-By header in responses") public boolean getSendXPoweredBy()
public void setSendDateHeader(boolean sendDateHeader)
Date
header should be sent in responses.sendDateHeader
- true if the Date
header should be sent in responsesgetSendDateHeader()
@ManagedAttribute(value="Whether to send the Date header in responses") public boolean getSendDateHeader()
Date
header will be sent in responses.public void setDelayDispatchUntilContent(boolean delay)
delay
- if true, delays the application dispatch until content is available (defaults to true)@ManagedAttribute(value="Whether to delay the application dispatch until content is available") public boolean isDelayDispatchUntilContent()
public void setCustomizers(List<HttpConfiguration.Customizer> customizers)
Sets the HttpConfiguration.Customizer
s that are invoked for every
request received.
Customizers are often used to interpret optional headers (eg ForwardedRequestCustomizer
) or
optional protocol semantics (eg SecureRequestCustomizer
).
customizers
- the list of customizerspublic void setOutputBufferSize(int outputBufferSize)
outputBufferSize
- buffer size in bytes.public void setOutputAggregationSize(int outputAggregationSize)
outputAggregationSize
- the max write size that is aggregatedpublic void setRequestHeaderSize(int requestHeaderSize)
Larger headers will allow for more and/or larger cookies plus larger form content encoded in a URL. However, larger headers consume more memory and can make a server more vulnerable to denial of service attacks.
requestHeaderSize
- the maximum size in bytes of the request headerpublic void setResponseHeaderSize(int responseHeaderSize)
Larger headers will allow for more and/or larger cookies and longer HTTP headers (eg for redirection). However, larger headers will also consume more memory.
responseHeaderSize
- the maximum size in bytes of the response headerpublic void setHeaderCacheSize(int headerCacheSize)
headerCacheSize
- The size in bytes of the header field cache.public void setSecurePort(int securePort)
Sets the TCP/IP port used for CONFIDENTIAL and INTEGRAL redirections.
securePort
- the secure port to redirect to.public void setSecureScheme(String secureScheme)
Set the URI scheme used for CONFIDENTIAL and INTEGRAL redirections.
secureScheme
- A scheme string like "https"public void setFormEncodedMethods(String... methods)
methods
- the HTTP methods of requests that can be decoded as
x-www-form-urlencoded
content to be made available via the
Request.getParameter(String)
and associated APIspublic Set<String> getFormEncodedMethods()
x-www-form-urlencoded
content to be made available via the
Request.getParameter(String)
and associated APIspublic void addFormEncodedMethod(String method)
method
- the HTTP method of requests that can be decoded as
x-www-form-urlencoded
content to be made available via the
Request.getParameter(String)
and associated APIspublic boolean isFormEncodedMethod(String method)
x-www-form-urlencoded
contentmethod
- the HTTP methodx-www-form-urlencoded
content to be made available via the
Request.getParameter(String)
and associated APIs@ManagedAttribute(value="The maximum ERROR dispatches for a request for loop prevention (default 10)") public int getMaxErrorDispatches()
public void setMaxErrorDispatches(int max)
max
- The maximum error dispatches for a request to prevent looping on an error@ManagedAttribute(value="The minimum request content data rate in bytes per second") public long getMinRequestDataRate()
public void setMinRequestDataRate(long bytesPerSecond)
bytesPerSecond
- The minimum request data rate in bytes per second; or <=0 for no limit@ManagedAttribute(value="The minimum response content data rate in bytes per second") public long getMinResponseDataRate()
public void setMinResponseDataRate(long bytesPerSecond)
Sets an minimum response content data rate.
The value is enforced only approximately - not precisely - due to the fact that for efficiency reasons buffer writes may be comprised of both response headers and response content.
bytesPerSecond
- The minimum response data rate in bytes per second; or <=0 for no limitpublic CookieCompliance getRequestCookieCompliance()
Cookie
headers.getResponseCookieCompliance()
public CookieCompliance getResponseCookieCompliance()
Set-Cookie
headersgetRequestCookieCompliance()
public void setRequestCookieCompliance(CookieCompliance cookieCompliance)
cookieCompliance
- The CookieCompliance to use for parsing request Cookie
headers.setRequestCookieCompliance(CookieCompliance)
public void setResponseCookieCompliance(CookieCompliance cookieCompliance)
cookieCompliance
- The CookieCompliance to use for generating response Set-Cookie
headerssetResponseCookieCompliance(CookieCompliance)
@Deprecated public void setCookieCompliance(CookieCompliance compliance)
@Deprecated public CookieCompliance getCookieCompliance()
@Deprecated public boolean isCookieCompliance(CookieCompliance compliance)
public void setMultiPartFormDataCompliance(MultiPartFormDataCompliance multiPartCompliance)
multiPartCompliance
- The multipart/form-data compliance level.public MultiPartFormDataCompliance getMultipartFormDataCompliance()
public void setNotifyRemoteAsyncErrors(boolean notifyRemoteAsyncErrors)
notifyRemoteAsyncErrors
- whether remote errors, when detected, are notified to async applications@ManagedAttribute(value="Whether remote errors, when detected, are notified to async applications") public boolean isNotifyRemoteAsyncErrors()
public void dump(Appendable out, String indent) throws IOException
Dumpable
dump
in interface Dumpable
out
- The appendable to dump toindent
- The indent to apply after any new lines.IOException
- if unable to write to AppendableCopyright © 2010 - 2020 Adobe. All Rights Reserved