public class HttpServerOptions extends NetServerOptions
HttpServer
instanceModifier and Type | Field and Description |
---|---|
static boolean |
DEFAULT_ACCEPT_UNMASKED_FRAMES
Default WebSocket Masked bit is true as depicted by RFC.
|
static List<HttpVersion> |
DEFAULT_ALPN_VERSIONS
Default Application-Layer Protocol Negotiation versions = [HTTP/2,HTTP/1.1]
|
static int |
DEFAULT_COMPRESSION_LEVEL
Default gzip/deflate compression level = 6 (Netty legacy)
|
static boolean |
DEFAULT_COMPRESSION_SUPPORTED
Default value of whether compression is supported = false
|
static int |
DEFAULT_DECODER_INITIAL_BUFFER_SIZE
Default initial buffer size for HttpObjectDecoder = 128 bytes
|
static boolean |
DEFAULT_DECOMPRESSION_SUPPORTED
Default value of whether decompression is supported = false
|
static boolean |
DEFAULT_HANDLE_100_CONTINE_AUTOMATICALLY
Default value of whether 100-Continue should be handled automatically
|
static int |
DEFAULT_HTTP2_CONNECTION_WINDOW_SIZE |
static long |
DEFAULT_INITIAL_SETTINGS_MAX_CONCURRENT_STREAMS
The default initial settings max concurrent stream for an HTTP/2 server = 100
|
static int |
DEFAULT_MAX_CHUNK_SIZE
Default max HTTP chunk size = 8192
|
static int |
DEFAULT_MAX_HEADER_SIZE
Default max length of all headers = 8192
|
static int |
DEFAULT_MAX_INITIAL_LINE_LENGTH
Default max length of the initial line (e.g.
|
static int |
DEFAULT_MAX_WEBSOCKET_FRAME_SIZE
Default max websocket framesize = 65536
|
static int |
DEFAULT_MAX_WEBSOCKET_MESSAGE_SIZE
Default max websocket message size (could be assembled from multiple frames) is 4 full frames
worth of data
|
static int |
DEFAULT_PORT
Default port the server will listen on = 80
|
DEFAULT_ACCEPT_BACKLOG, DEFAULT_CLIENT_AUTH, DEFAULT_HOST, DEFAULT_SNI
DEFAULT_IDLE_TIMEOUT, DEFAULT_SO_LINGER, DEFAULT_SSL, DEFAULT_SSL_ENGINE, DEFAULT_TCP_KEEP_ALIVE, DEFAULT_TCP_NO_DELAY, DEFAULT_USE_ALPN, DEFAULT_USE_POOLED_BUFFERS
DEFAULT_LOG_ENABLED, DEFAULT_RECEIVE_BUFFER_SIZE, DEFAULT_REUSE_ADDRESS, DEFAULT_SEND_BUFFER_SIZE, DEFAULT_TRAFFIC_CLASS
Constructor and Description |
---|
HttpServerOptions()
Default constructor
|
HttpServerOptions(HttpServerOptions other)
Copy constructor
|
HttpServerOptions(JsonObject json)
Create an options from JSON
|
Modifier and Type | Method and Description |
---|---|
HttpServerOptions |
addCrlPath(String crlPath)
Add a CRL path
|
HttpServerOptions |
addCrlValue(Buffer crlValue)
Add a CRL value
|
HttpServerOptions |
addEnabledCipherSuite(String suite)
Add an enabled cipher suite, appended to the ordered suites.
|
HttpServerOptions |
addEnabledSecureTransportProtocol(String protocol)
Add an enabled SSL/TLS protocols, appended to the ordered protocols.
|
boolean |
equals(Object o) |
List<HttpVersion> |
getAlpnVersions() |
int |
getCompressionLevel() |
int |
getDecoderInitialBufferSize() |
int |
getHttp2ConnectionWindowSize() |
Http2Settings |
getInitialSettings() |
int |
getMaxChunkSize()
Returns the maximum HTTP chunk size
|
int |
getMaxHeaderSize() |
int |
getMaxInitialLineLength() |
int |
getMaxWebsocketFrameSize() |
int |
getMaxWebsocketMessageSize() |
String |
getWebsocketSubProtocols() |
int |
hashCode() |
boolean |
isAcceptUnmaskedFrames() |
boolean |
isCompressionSupported() |
boolean |
isDecompressionSupported() |
boolean |
isHandle100ContinueAutomatically() |
HttpServerOptions |
setAcceptBacklog(int acceptBacklog)
Set the accept back log
|
HttpServerOptions |
setAcceptUnmaskedFrames(boolean acceptUnmaskedFrames)
Set true when the server accepts unmasked frame.
|
HttpServerOptions |
setAlpnVersions(List<HttpVersion> alpnVersions)
Set the list of protocol versions to provide to the server during the Application-Layer Protocol Negotiatiation.
|
HttpServerOptions |
setClientAuth(ClientAuth clientAuth)
Set whether client auth is required
|
HttpServerOptions |
setClientAuthRequired(boolean clientAuthRequired)
Deprecated.
|
HttpServerOptions |
setCompressionLevel(int compressionLevel)
This method allows to set the compression level to be used in http1.x/2 response bodies
when compression support is turned on (@see setCompressionSupported) and the client advertises
to support
deflate/gzip compression in the Accept-Encoding header
default value is : 6 (Netty legacy)
The compression level determines how much the data is compressed on a scale from 1 to 9,
where '9' is trying to achieve the maximum compression ratio while '1' instead is giving
priority to speed instead of compression ratio using some algorithm optimizations and skipping
pedantic loops that usually gives just little improvements
While one can think that best value is always the maximum compression ratio,
there's a trade-off to consider: the most compressed level requires the most
computational work to compress/decompress data, e.g. |
HttpServerOptions |
setCompressionSupported(boolean compressionSupported)
Set whether the server should support gzip/deflate compression
(serving compressed responses to clients advertising support for them with Accept-Encoding header)
|
HttpServerOptions |
setDecoderInitialBufferSize(int decoderInitialBufferSize)
Set the initial buffer size for the HTTP decoder
|
HttpServerOptions |
setDecompressionSupported(boolean decompressionSupported)
Set whether the server supports decompression
|
HttpServerOptions |
setHandle100ContinueAutomatically(boolean handle100ContinueAutomatically)
Set whether 100 Continue should be handled automatically
|
HttpServerOptions |
setHost(String host)
Set the host
|
HttpServerOptions |
setHttp2ConnectionWindowSize(int http2ConnectionWindowSize)
Set the default HTTP/2 connection window size.
|
HttpServerOptions |
setIdleTimeout(int idleTimeout)
Set the idle timeout, in seconds.
|
HttpServerOptions |
setInitialSettings(Http2Settings settings)
Set the HTTP/2 connection settings immediatly sent by the server when a client connects.
|
HttpServerOptions |
setJdkSslEngineOptions(JdkSSLEngineOptions sslEngineOptions) |
HttpServerOptions |
setKeyCertOptions(KeyCertOptions options)
Set the key/cert options.
|
HttpServerOptions |
setKeyStoreOptions(JksOptions options)
Set the key/cert options in jks format, aka Java keystore.
|
HttpServerOptions |
setLogActivity(boolean logEnabled)
Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
|
HttpServerOptions |
setMaxChunkSize(int maxChunkSize)
Set the maximum HTTP chunk size
|
HttpServerOptions |
setMaxHeaderSize(int maxHeaderSize)
Set the maximum length of all headers for HTTP/1.x .
|
HttpServerOptions |
setMaxInitialLineLength(int maxInitialLineLength)
Set the maximum length of the initial line for HTTP/1.x (e.g.
|
HttpServerOptions |
setMaxWebsocketFrameSize(int maxWebsocketFrameSize)
Set the maximum websocket frames size
|
HttpServerOptions |
setMaxWebsocketMessageSize(int maxWebsocketMessageSize)
Set the maximum websocket message size
|
HttpServerOptions |
setOpenSslEngineOptions(OpenSSLEngineOptions sslEngineOptions) |
HttpServerOptions |
setPemKeyCertOptions(PemKeyCertOptions options)
Set the key/cert store options in pem format.
|
HttpServerOptions |
setPemTrustOptions(PemTrustOptions options)
Set the trust options in pem format
|
HttpServerOptions |
setPfxKeyCertOptions(PfxOptions options)
Set the key/cert options in pfx format.
|
HttpServerOptions |
setPfxTrustOptions(PfxOptions options)
Set the trust options in pfx format
|
HttpServerOptions |
setPort(int port)
Set the port
|
HttpServerOptions |
setReceiveBufferSize(int receiveBufferSize)
Set the TCP receive buffer size
|
HttpServerOptions |
setReuseAddress(boolean reuseAddress)
Set the value of reuse address
|
HttpServerOptions |
setSendBufferSize(int sendBufferSize)
Set the TCP send buffer size
|
HttpServerOptions |
setSni(boolean sni)
Set whether the server supports Server Name Indiciation
|
HttpServerOptions |
setSoLinger(int soLinger)
Set whether SO_linger keep alive is enabled
|
HttpServerOptions |
setSsl(boolean ssl)
Set whether SSL/TLS is enabled
|
HttpServerOptions |
setSslEngineOptions(SSLEngineOptions sslEngineOptions)
Set to use SSL engine implementation to use.
|
HttpServerOptions |
setTcpKeepAlive(boolean tcpKeepAlive)
Set whether TCP keep alive is enabled
|
HttpServerOptions |
setTcpNoDelay(boolean tcpNoDelay)
Set whether TCP no delay is enabled
|
HttpServerOptions |
setTrafficClass(int trafficClass)
Set the value of traffic class
|
HttpServerOptions |
setTrustOptions(TrustOptions options)
Set the trust options.
|
HttpServerOptions |
setTrustStoreOptions(JksOptions options)
Set the trust options in jks format, aka Java truststore
|
HttpServerOptions |
setUseAlpn(boolean useAlpn)
Set the ALPN usage.
|
HttpServerOptions |
setUsePooledBuffers(boolean usePooledBuffers)
Set whether Netty pooled buffers are enabled
|
HttpServerOptions |
setWebsocketSubProtocols(String subProtocols)
Set the websocket subprotocols supported by the server.
|
JsonObject |
toJson()
Convert to JSON
|
getAcceptBacklog, getClientAuth, getHost, getPort, isClientAuthRequired, isSni
getCrlPaths, getCrlValues, getEnabledCipherSuites, getEnabledSecureTransportProtocols, getIdleTimeout, getJdkSslEngineOptions, getKeyCertOptions, getKeyStoreOptions, getOpenSslEngineOptions, getPemKeyCertOptions, getPemTrustOptions, getPfxKeyCertOptions, getPfxTrustOptions, getSoLinger, getSslEngineOptions, getTrustOptions, getTrustStoreOptions, isSsl, isTcpKeepAlive, isTcpNoDelay, isUseAlpn, isUsePooledBuffers
getLogActivity, getReceiveBufferSize, getSendBufferSize, getTrafficClass, isReuseAddress
public static final int DEFAULT_PORT
public static final boolean DEFAULT_COMPRESSION_SUPPORTED
public static final int DEFAULT_COMPRESSION_LEVEL
public static final int DEFAULT_MAX_WEBSOCKET_FRAME_SIZE
public static final int DEFAULT_MAX_WEBSOCKET_MESSAGE_SIZE
public static final int DEFAULT_MAX_CHUNK_SIZE
public static final int DEFAULT_MAX_INITIAL_LINE_LENGTH
"GET / HTTP/1.0"
) = 4096public static final int DEFAULT_MAX_HEADER_SIZE
public static final boolean DEFAULT_HANDLE_100_CONTINE_AUTOMATICALLY
public static final List<HttpVersion> DEFAULT_ALPN_VERSIONS
public static final long DEFAULT_INITIAL_SETTINGS_MAX_CONCURRENT_STREAMS
public static final int DEFAULT_HTTP2_CONNECTION_WINDOW_SIZE
public static final boolean DEFAULT_DECOMPRESSION_SUPPORTED
public static final boolean DEFAULT_ACCEPT_UNMASKED_FRAMES
public static final int DEFAULT_DECODER_INITIAL_BUFFER_SIZE
public HttpServerOptions()
public HttpServerOptions(HttpServerOptions other)
other
- the options to copypublic HttpServerOptions(JsonObject json)
json
- the JSONpublic JsonObject toJson()
toJson
in class NetServerOptions
public HttpServerOptions setSendBufferSize(int sendBufferSize)
NetworkOptions
setSendBufferSize
in class NetServerOptions
sendBufferSize
- the buffers size, in bytespublic HttpServerOptions setReceiveBufferSize(int receiveBufferSize)
NetworkOptions
setReceiveBufferSize
in class NetServerOptions
receiveBufferSize
- the buffers size, in bytespublic HttpServerOptions setReuseAddress(boolean reuseAddress)
NetworkOptions
setReuseAddress
in class NetServerOptions
reuseAddress
- the value of reuse addresspublic HttpServerOptions setTrafficClass(int trafficClass)
NetworkOptions
setTrafficClass
in class NetServerOptions
trafficClass
- the value of traffic classpublic HttpServerOptions setTcpNoDelay(boolean tcpNoDelay)
TCPSSLOptions
setTcpNoDelay
in class NetServerOptions
tcpNoDelay
- true if TCP no delay is enabled (Nagle disabled)public HttpServerOptions setTcpKeepAlive(boolean tcpKeepAlive)
TCPSSLOptions
setTcpKeepAlive
in class NetServerOptions
tcpKeepAlive
- true if TCP keep alive is enabledpublic HttpServerOptions setSoLinger(int soLinger)
TCPSSLOptions
setSoLinger
in class NetServerOptions
soLinger
- true if SO_linger is enabledpublic HttpServerOptions setUsePooledBuffers(boolean usePooledBuffers)
TCPSSLOptions
setUsePooledBuffers
in class NetServerOptions
usePooledBuffers
- true if pooled buffers enabledpublic HttpServerOptions setIdleTimeout(int idleTimeout)
TCPSSLOptions
setIdleTimeout
in class NetServerOptions
idleTimeout
- the timeout, in secondspublic HttpServerOptions setSsl(boolean ssl)
TCPSSLOptions
setSsl
in class NetServerOptions
ssl
- true if enabledpublic HttpServerOptions setUseAlpn(boolean useAlpn)
TCPSSLOptions
setUseAlpn
in class NetServerOptions
useAlpn
- true when Application-Layer Protocol Negotiation should be usedpublic HttpServerOptions setKeyCertOptions(KeyCertOptions options)
TCPSSLOptions
setKeyCertOptions
in class NetServerOptions
options
- the key store optionspublic HttpServerOptions setKeyStoreOptions(JksOptions options)
TCPSSLOptions
setKeyStoreOptions
in class NetServerOptions
options
- the key store in jks formatpublic HttpServerOptions setPfxKeyCertOptions(PfxOptions options)
TCPSSLOptions
setPfxKeyCertOptions
in class NetServerOptions
options
- the key cert options in pfx formatpublic HttpServerOptions setPemKeyCertOptions(PemKeyCertOptions options)
TCPSSLOptions
setPemKeyCertOptions
in class NetServerOptions
options
- the options in pem formatpublic HttpServerOptions setTrustOptions(TrustOptions options)
TCPSSLOptions
setTrustOptions
in class NetServerOptions
options
- the trust optionspublic HttpServerOptions setTrustStoreOptions(JksOptions options)
TCPSSLOptions
setTrustStoreOptions
in class NetServerOptions
options
- the trust options in jks formatpublic HttpServerOptions setPemTrustOptions(PemTrustOptions options)
TCPSSLOptions
setPemTrustOptions
in class NetServerOptions
options
- the trust options in pem formatpublic HttpServerOptions setPfxTrustOptions(PfxOptions options)
TCPSSLOptions
setPfxTrustOptions
in class NetServerOptions
options
- the trust options in pfx formatpublic HttpServerOptions addEnabledCipherSuite(String suite)
TCPSSLOptions
addEnabledCipherSuite
in class NetServerOptions
suite
- the suitepublic HttpServerOptions addEnabledSecureTransportProtocol(String protocol)
TCPSSLOptions
addEnabledSecureTransportProtocol
in class NetServerOptions
protocol
- the SSL/TLS protocol do enabledpublic HttpServerOptions addCrlPath(String crlPath) throws NullPointerException
TCPSSLOptions
addCrlPath
in class NetServerOptions
crlPath
- the pathNullPointerException
public HttpServerOptions addCrlValue(Buffer crlValue) throws NullPointerException
TCPSSLOptions
addCrlValue
in class NetServerOptions
crlValue
- the valueNullPointerException
public HttpServerOptions setAcceptBacklog(int acceptBacklog)
NetServerOptions
setAcceptBacklog
in class NetServerOptions
acceptBacklog
- accept backlogpublic HttpServerOptions setPort(int port)
NetServerOptions
setPort
in class NetServerOptions
port
- the portpublic HttpServerOptions setHost(String host)
NetServerOptions
setHost
in class NetServerOptions
host
- the host@Deprecated public HttpServerOptions setClientAuthRequired(boolean clientAuthRequired)
NetServerOptions
setClientAuthRequired
in class NetServerOptions
clientAuthRequired
- true if client auth is requiredpublic HttpServerOptions setClientAuth(ClientAuth clientAuth)
NetServerOptions
setClientAuth
in class NetServerOptions
clientAuth
- One of "NONE, REQUEST, REQUIRED". If it's set to "REQUIRED" then server will require the
SSL cert to be presented otherwise it won't accept the request. If it's set to "REQUEST" then
it won't mandate the certificate to be presented, basically make it optional.public HttpServerOptions setSslEngineOptions(SSLEngineOptions sslEngineOptions)
TCPSSLOptions
setSslEngineOptions
in class NetServerOptions
sslEngineOptions
- the ssl engine to usepublic HttpServerOptions setJdkSslEngineOptions(JdkSSLEngineOptions sslEngineOptions)
setJdkSslEngineOptions
in class NetServerOptions
public HttpServerOptions setOpenSslEngineOptions(OpenSSLEngineOptions sslEngineOptions)
setOpenSslEngineOptions
in class NetServerOptions
public boolean isCompressionSupported()
public HttpServerOptions setCompressionSupported(boolean compressionSupported)
compressionSupported
- true to enable compression supportpublic int getCompressionLevel()
public HttpServerOptions setCompressionLevel(int compressionLevel)
deflate/gzip
compression in the Accept-Encoding
header
default value is : 6 (Netty legacy)
The compression level determines how much the data is compressed on a scale from 1 to 9,
where '9' is trying to achieve the maximum compression ratio while '1' instead is giving
priority to speed instead of compression ratio using some algorithm optimizations and skipping
pedantic loops that usually gives just little improvements
While one can think that best value is always the maximum compression ratio,
there's a trade-off to consider: the most compressed level requires the most
computational work to compress/decompress data, e.g. more dictionary lookups and loops.
E.g. you have it set fairly high on a high-volume website, you may experience performance degradation
and latency on resource serving due to CPU overload, and, however - as the computational work is required also client side
while decompressing - setting an higher compression level can result in an overall higher page load time
especially nowadays when many clients are handled mobile devices with a low CPU profile.
see also: http://www.gzip.org/algorithm.txtcompressionLevel
- integer 1-9, 1 means use fastest algorithm, 9 slower algorithm but better compression ratiopublic boolean isAcceptUnmaskedFrames()
public HttpServerOptions setAcceptUnmaskedFrames(boolean acceptUnmaskedFrames)
acceptUnmaskedFrames
- true if enabledpublic int getMaxWebsocketFrameSize()
public HttpServerOptions setMaxWebsocketFrameSize(int maxWebsocketFrameSize)
maxWebsocketFrameSize
- the maximum frame size in bytes.public int getMaxWebsocketMessageSize()
public HttpServerOptions setMaxWebsocketMessageSize(int maxWebsocketMessageSize)
maxWebsocketMessageSize
- the maximum message size in bytes.public HttpServerOptions setWebsocketSubProtocols(String subProtocols)
subProtocols
- comma separated list of subprotocolspublic String getWebsocketSubProtocols()
public boolean isHandle100ContinueAutomatically()
public HttpServerOptions setHandle100ContinueAutomatically(boolean handle100ContinueAutomatically)
handle100ContinueAutomatically
- true if it should be handled automaticallypublic HttpServerOptions setMaxChunkSize(int maxChunkSize)
maxChunkSize
- the maximum chunk sizepublic int getMaxChunkSize()
public int getMaxInitialLineLength()
"GET / HTTP/1.0"
)public HttpServerOptions setMaxInitialLineLength(int maxInitialLineLength)
"GET / HTTP/1.0"
)maxInitialLineLength
- the new maximum initial lengthpublic int getMaxHeaderSize()
public HttpServerOptions setMaxHeaderSize(int maxHeaderSize)
maxHeaderSize
- the new maximum lengthpublic Http2Settings getInitialSettings()
public HttpServerOptions setInitialSettings(Http2Settings settings)
settings
- the settings valuepublic List<HttpVersion> getAlpnVersions()
public HttpServerOptions setAlpnVersions(List<HttpVersion> alpnVersions)
alpnVersions
- the versionspublic int getHttp2ConnectionWindowSize()
public HttpServerOptions setHttp2ConnectionWindowSize(int http2ConnectionWindowSize)
Http2Settings.getInitialWindowSize()
, so the connection window size
is greater than for its streams, in order the data throughput.
A value of -1
reuses the initial window size setting.http2ConnectionWindowSize
- the window size applied to the connectionpublic HttpServerOptions setLogActivity(boolean logEnabled)
NetworkOptions
setLogActivity
in class NetServerOptions
logEnabled
- true for logging the network activitypublic HttpServerOptions setSni(boolean sni)
NetServerOptions
setSni
in class NetServerOptions
public boolean isDecompressionSupported()
public HttpServerOptions setDecompressionSupported(boolean decompressionSupported)
decompressionSupported
- true if decompression supportedpublic int getDecoderInitialBufferSize()
public HttpServerOptions setDecoderInitialBufferSize(int decoderInitialBufferSize)
decoderInitialBufferSize
- the initial sizepublic boolean equals(Object o)
equals
in class NetServerOptions
public int hashCode()
hashCode
in class NetServerOptions
Copyright © 2017. All rights reserved.