public class HttpServerOptions extends NetServerOptions
HttpServer instance| Modifier 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_SNIDEFAULT_ENABLED_SECURE_TRANSPORT_PROTOCOLS, DEFAULT_IDLE_TIMEOUT, DEFAULT_SO_LINGER, DEFAULT_SSL, DEFAULT_SSL_ENGINE, DEFAULT_TCP_CORK, DEFAULT_TCP_FAST_OPEN, DEFAULT_TCP_KEEP_ALIVE, DEFAULT_TCP_NO_DELAY, DEFAULT_TCP_QUICKACK, DEFAULT_USE_ALPN, DEFAULT_USE_POOLED_BUFFERSDEFAULT_LOG_ENABLED, DEFAULT_RECEIVE_BUFFER_SIZE, DEFAULT_REUSE_ADDRESS, DEFAULT_REUSE_PORT, 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 |
removeEnabledSecureTransportProtocol(String protocol)
Removes an enabled SSL/TLS protocol from the ordered protocols.
|
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 |
setReusePort(boolean reusePort)
Set the value of reuse port.
|
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 |
setTcpCork(boolean tcpCork)
Enable the
TCP_CORK option - only with linux native transport. |
HttpServerOptions |
setTcpFastOpen(boolean tcpFastOpen)
Enable the
TCP_FASTOPEN option - only with linux native transport. |
HttpServerOptions |
setTcpKeepAlive(boolean tcpKeepAlive)
Set whether TCP keep alive is enabled
|
HttpServerOptions |
setTcpNoDelay(boolean tcpNoDelay)
Set whether TCP no delay is enabled
|
HttpServerOptions |
setTcpQuickAck(boolean tcpQuickAck)
Enable the
TCP_QUICKACK option - only with linux native transport. |
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, isSnigetCrlPaths, getCrlValues, getEnabledCipherSuites, getEnabledSecureTransportProtocols, getIdleTimeout, getJdkSslEngineOptions, getKeyCertOptions, getKeyStoreOptions, getOpenSslEngineOptions, getPemKeyCertOptions, getPemTrustOptions, getPfxKeyCertOptions, getPfxTrustOptions, getSoLinger, getSslEngineOptions, getTrustOptions, getTrustStoreOptions, isSsl, isTcpCork, isTcpFastOpen, isTcpKeepAlive, isTcpNoDelay, isTcpQuickAck, isUseAlpn, isUsePooledBuffers, setEnabledSecureTransportProtocolsgetLogActivity, getReceiveBufferSize, getSendBufferSize, getTrafficClass, isReuseAddress, isReusePortpublic 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 NetServerOptionspublic HttpServerOptions setSendBufferSize(int sendBufferSize)
NetworkOptionssetSendBufferSize in class NetServerOptionssendBufferSize - the buffers size, in bytespublic HttpServerOptions setReceiveBufferSize(int receiveBufferSize)
NetworkOptionssetReceiveBufferSize in class NetServerOptionsreceiveBufferSize - the buffers size, in bytespublic HttpServerOptions setReuseAddress(boolean reuseAddress)
NetworkOptionssetReuseAddress in class NetServerOptionsreuseAddress - the value of reuse addresspublic HttpServerOptions setReusePort(boolean reusePort)
NetworkOptionssetReusePort in class NetServerOptionsreusePort - the value of reuse portpublic HttpServerOptions setTrafficClass(int trafficClass)
NetworkOptionssetTrafficClass in class NetServerOptionstrafficClass - the value of traffic classpublic HttpServerOptions setTcpNoDelay(boolean tcpNoDelay)
TCPSSLOptionssetTcpNoDelay in class NetServerOptionstcpNoDelay - true if TCP no delay is enabled (Nagle disabled)public HttpServerOptions setTcpKeepAlive(boolean tcpKeepAlive)
TCPSSLOptionssetTcpKeepAlive in class NetServerOptionstcpKeepAlive - true if TCP keep alive is enabledpublic HttpServerOptions setSoLinger(int soLinger)
TCPSSLOptionssetSoLinger in class NetServerOptionssoLinger - true if SO_linger is enabledpublic HttpServerOptions setUsePooledBuffers(boolean usePooledBuffers)
TCPSSLOptionssetUsePooledBuffers in class NetServerOptionsusePooledBuffers - true if pooled buffers enabledpublic HttpServerOptions setIdleTimeout(int idleTimeout)
TCPSSLOptionssetIdleTimeout in class NetServerOptionsidleTimeout - the timeout, in secondspublic HttpServerOptions setSsl(boolean ssl)
TCPSSLOptionssetSsl in class NetServerOptionsssl - true if enabledpublic HttpServerOptions setUseAlpn(boolean useAlpn)
TCPSSLOptionssetUseAlpn in class NetServerOptionsuseAlpn - true when Application-Layer Protocol Negotiation should be usedpublic HttpServerOptions setKeyCertOptions(KeyCertOptions options)
TCPSSLOptionssetKeyCertOptions in class NetServerOptionsoptions - the key store optionspublic HttpServerOptions setKeyStoreOptions(JksOptions options)
TCPSSLOptionssetKeyStoreOptions in class NetServerOptionsoptions - the key store in jks formatpublic HttpServerOptions setPfxKeyCertOptions(PfxOptions options)
TCPSSLOptionssetPfxKeyCertOptions in class NetServerOptionsoptions - the key cert options in pfx formatpublic HttpServerOptions setPemKeyCertOptions(PemKeyCertOptions options)
TCPSSLOptionssetPemKeyCertOptions in class NetServerOptionsoptions - the options in pem formatpublic HttpServerOptions setTrustOptions(TrustOptions options)
TCPSSLOptionssetTrustOptions in class NetServerOptionsoptions - the trust optionspublic HttpServerOptions setTrustStoreOptions(JksOptions options)
TCPSSLOptionssetTrustStoreOptions in class NetServerOptionsoptions - the trust options in jks formatpublic HttpServerOptions setPemTrustOptions(PemTrustOptions options)
TCPSSLOptionssetPemTrustOptions in class NetServerOptionsoptions - the trust options in pem formatpublic HttpServerOptions setPfxTrustOptions(PfxOptions options)
TCPSSLOptionssetPfxTrustOptions in class NetServerOptionsoptions - the trust options in pfx formatpublic HttpServerOptions addEnabledCipherSuite(String suite)
TCPSSLOptionsaddEnabledCipherSuite in class NetServerOptionssuite - the suitepublic HttpServerOptions addEnabledSecureTransportProtocol(String protocol)
TCPSSLOptionsaddEnabledSecureTransportProtocol in class NetServerOptionsprotocol - the SSL/TLS protocol to enablepublic HttpServerOptions removeEnabledSecureTransportProtocol(String protocol)
TCPSSLOptionsremoveEnabledSecureTransportProtocol in class NetServerOptionsprotocol - the SSL/TLS protocol to disablepublic HttpServerOptions setTcpFastOpen(boolean tcpFastOpen)
TCPSSLOptionsTCP_FASTOPEN option - only with linux native transport.setTcpFastOpen in class NetServerOptionstcpFastOpen - the fast open valuepublic HttpServerOptions setTcpCork(boolean tcpCork)
TCPSSLOptionsTCP_CORK option - only with linux native transport.setTcpCork in class NetServerOptionstcpCork - the cork valuepublic HttpServerOptions setTcpQuickAck(boolean tcpQuickAck)
TCPSSLOptionsTCP_QUICKACK option - only with linux native transport.setTcpQuickAck in class NetServerOptionstcpQuickAck - the quick ack valuepublic HttpServerOptions addCrlPath(String crlPath) throws NullPointerException
TCPSSLOptionsaddCrlPath in class NetServerOptionscrlPath - the pathNullPointerExceptionpublic HttpServerOptions addCrlValue(Buffer crlValue) throws NullPointerException
TCPSSLOptionsaddCrlValue in class NetServerOptionscrlValue - the valueNullPointerExceptionpublic HttpServerOptions setAcceptBacklog(int acceptBacklog)
NetServerOptionssetAcceptBacklog in class NetServerOptionsacceptBacklog - accept backlogpublic HttpServerOptions setPort(int port)
NetServerOptionssetPort in class NetServerOptionsport - the portpublic HttpServerOptions setHost(String host)
NetServerOptionssetHost in class NetServerOptionshost - the host@Deprecated public HttpServerOptions setClientAuthRequired(boolean clientAuthRequired)
NetServerOptionssetClientAuthRequired in class NetServerOptionsclientAuthRequired - true if client auth is requiredpublic HttpServerOptions setClientAuth(ClientAuth clientAuth)
NetServerOptionssetClientAuth in class NetServerOptionsclientAuth - 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)
TCPSSLOptionssetSslEngineOptions in class NetServerOptionssslEngineOptions - the ssl engine to usepublic HttpServerOptions setJdkSslEngineOptions(JdkSSLEngineOptions sslEngineOptions)
setJdkSslEngineOptions in class NetServerOptionspublic HttpServerOptions setOpenSslEngineOptions(OpenSSLEngineOptions sslEngineOptions)
setOpenSslEngineOptions in class NetServerOptionspublic 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)
NetworkOptionssetLogActivity in class NetServerOptionslogEnabled - true for logging the network activitypublic HttpServerOptions setSni(boolean sni)
NetServerOptionssetSni in class NetServerOptionspublic 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 NetServerOptionspublic int hashCode()
hashCode in class NetServerOptionsCopyright © 2018 Eclipse. All rights reserved.