Package io.netty.handler.codec.http
Class HttpContentCompressor
- All Implemented Interfaces:
ChannelHandler
,ChannelInboundHandler
,ChannelOutboundHandler
Compresses an
HttpMessage
and an HttpContent
in gzip
or
deflate
encoding while respecting the "Accept-Encoding"
header.
If there is no matching encoding, no compression is done. For more
information on how this handler modifies the message, please refer to
HttpContentEncoder
.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate final class
Compression Encoder Factory that createsZlibEncoder
s used to compress http content for deflate content encodingprivate final class
Compression Encoder Factory that createsZlibEncoder
s used to compress http content for gzip content encodingNested classes/interfaces inherited from class io.netty.handler.codec.http.HttpContentEncoder
HttpContentEncoder.Result
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final int
private ChannelHandlerContext
private final DeflateOptions
private final Map
<String, CompressionEncoderFactory> private final GzipOptions
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new handler withinvalid reference
StandardCompressionOptions#brotli()
invalid reference
StandardCompressionOptions#zstd()
invalid reference
StandardCompressionOptions#snappy()
StandardCompressionOptions.gzip()
andStandardCompressionOptions.deflate()
.HttpContentCompressor
(int compressionLevel) Deprecated.HttpContentCompressor
(int compressionLevel, int windowBits, int memLevel) Deprecated.HttpContentCompressor
(int compressionLevel, int windowBits, int memLevel, int contentSizeThreshold) Deprecated.HttpContentCompressor
(int contentSizeThreshold, CompressionOptions... compressionOptions) Create a newHttpContentCompressor
instance with specifiedCompressionOptions
sHttpContentCompressor
(CompressionOptions... compressionOptions) Create a newHttpContentCompressor
Instance with specifiedCompressionOptions
s and contentSizeThreshold set to0
-
Method Summary
Modifier and TypeMethodDescriptionprotected HttpContentEncoder.Result
beginEncode
(HttpResponse httpResponse, String acceptEncoding) Prepare to encode the HTTP message content.private static CompressionOptions[]
defaultCompressionOptions
(GzipOptions gzipOptions, DeflateOptions deflateOptions) protected String
determineEncoding
(String acceptEncoding) protected ZlibWrapper
determineWrapper
(String acceptEncoding) Deprecated.void
Do nothing by default, sub-classes may override this method.Methods inherited from class io.netty.handler.codec.http.HttpContentEncoder
acceptOutboundMessage, channelInactive, decode, encode, handlerRemoved
Methods inherited from class io.netty.handler.codec.MessageToMessageCodec
acceptInboundMessage, channelRead, channelReadComplete, write
Methods inherited from class io.netty.channel.ChannelDuplexHandler
bind, close, connect, deregister, disconnect, flush, read
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, isSharable
-
Field Details
-
gzipOptions
-
deflateOptions
-
contentSizeThreshold
private final int contentSizeThreshold -
ctx
-
factories
-
-
Constructor Details
-
HttpContentCompressor
public HttpContentCompressor()Creates a new handler withinvalid reference
StandardCompressionOptions#brotli()
invalid reference
StandardCompressionOptions#zstd()
invalid reference
StandardCompressionOptions#snappy()
StandardCompressionOptions.gzip()
andStandardCompressionOptions.deflate()
. -
HttpContentCompressor
Deprecated.Creates a new handler with the specified compression level, default window size (15) and default memory level (8).- Parameters:
compressionLevel
-1
yields the fastest compression and9
yields the best compression.0
means no compression. The default compression level is6
.
-
HttpContentCompressor
Deprecated.Creates a new handler with the specified compression level, window size, and memory level.- Parameters:
compressionLevel
-1
yields the fastest compression and9
yields the best compression.0
means no compression. The default compression level is6
.windowBits
- The base two logarithm of the size of the history buffer. The value should be in the range9
to15
inclusive. Larger values result in better compression at the expense of memory usage. The default value is15
.memLevel
- How much memory should be allocated for the internal compression state.1
uses minimum memory and9
uses maximum memory. Larger values result in better and faster compression at the expense of memory usage. The default value is8
-
HttpContentCompressor
@Deprecated public HttpContentCompressor(int compressionLevel, int windowBits, int memLevel, int contentSizeThreshold) Deprecated.Creates a new handler with the specified compression level, window size, and memory level.- Parameters:
compressionLevel
-1
yields the fastest compression and9
yields the best compression.0
means no compression. The default compression level is6
.windowBits
- The base two logarithm of the size of the history buffer. The value should be in the range9
to15
inclusive. Larger values result in better compression at the expense of memory usage. The default value is15
.memLevel
- How much memory should be allocated for the internal compression state.1
uses minimum memory and9
uses maximum memory. Larger values result in better and faster compression at the expense of memory usage. The default value is8
contentSizeThreshold
- The response body is compressed when the size of the response body exceeds the threshold. The value should be a non negative number.0
will enable compression for all responses.
-
HttpContentCompressor
Create a newHttpContentCompressor
Instance with specifiedCompressionOptions
s and contentSizeThreshold set to0
- Parameters:
compressionOptions
-CompressionOptions
ornull
if the default should be used.
-
HttpContentCompressor
Create a newHttpContentCompressor
instance with specifiedCompressionOptions
s- Parameters:
contentSizeThreshold
- The response body is compressed when the size of the response body exceeds the threshold. The value should be a non negative number.0
will enable compression for all responses.compressionOptions
-CompressionOptions
ornull
if the default should be used.
-
-
Method Details
-
defaultCompressionOptions
private static CompressionOptions[] defaultCompressionOptions(GzipOptions gzipOptions, DeflateOptions deflateOptions) -
handlerAdded
Description copied from class:ChannelHandlerAdapter
Do nothing by default, sub-classes may override this method.- Specified by:
handlerAdded
in interfaceChannelHandler
- Overrides:
handlerAdded
in classChannelHandlerAdapter
- Throws:
Exception
-
beginEncode
protected HttpContentEncoder.Result beginEncode(HttpResponse httpResponse, String acceptEncoding) throws Exception Description copied from class:HttpContentEncoder
Prepare to encode the HTTP message content.- Specified by:
beginEncode
in classHttpContentEncoder
- Parameters:
httpResponse
- the http responseacceptEncoding
- the value of the"Accept-Encoding"
header- Returns:
- the result of preparation, which is composed of the determined
target content encoding and a new
EmbeddedChannel
that encodes the content into the target content encoding.null
ifacceptEncoding
is unsupported or rejected and thus the content should be handled as-is (i.e. no encoding). - Throws:
Exception
-
determineEncoding
-
determineWrapper
Deprecated.
-