Package io.netty.handler.codec.http
Class HttpClientCodec
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.channel.ChannelDuplexHandler
-
- io.netty.channel.CombinedChannelDuplexHandler<HttpResponseDecoder,HttpRequestEncoder>
-
- io.netty.handler.codec.http.HttpClientCodec
-
- All Implemented Interfaces:
ChannelHandler
,ChannelInboundHandler
,ChannelOutboundHandler
,HttpClientUpgradeHandler.SourceCodec
public final class HttpClientCodec extends CombinedChannelDuplexHandler<HttpResponseDecoder,HttpRequestEncoder> implements HttpClientUpgradeHandler.SourceCodec
A combination ofHttpRequestEncoder
andHttpResponseDecoder
which enables easier client side HTTP implementation.HttpClientCodec
provides additional state management for HEAD and CONNECT requests, whichHttpResponseDecoder
lacks. Please refer toHttpResponseDecoder
to learn what additional state management needs to be done for HEAD and CONNECT and whyHttpResponseDecoder
can not handle it by itself.If the
Channel
is closed and there are missing responses, aPrematureChannelClosureException
is thrown.Header Validation
It is recommended to always enable header validation.Without header validation, your system can become vulnerable to CWE-113: Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Response Splitting') .
This recommendation stands even when both peers in the HTTP exchange are trusted, as it helps with defence-in-depth.
- See Also:
HttpServerCodec
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
DEFAULT_FAIL_ON_MISSING_RESPONSE
static boolean
DEFAULT_PARSE_HTTP_AFTER_CONNECT_REQUEST
-
Constructor Summary
Constructors Constructor Description HttpClientCodec()
Creates a new instance with the default decoder options (maxInitialLineLength (4096)
,maxHeaderSize (8192)
, andmaxChunkSize (8192)
).HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize)
Creates a new instance with the specified decoder options.HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse)
Creates a new instance with the specified decoder options.HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse, boolean validateHeaders)
Deprecated.Prefer theHttpClientCodec(int, int, int, boolean)
constructor, to always enable header validation.HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse, boolean validateHeaders, boolean parseHttpAfterConnectRequest)
Deprecated.Prefer theHttpClientCodec(HttpDecoderConfig, boolean, boolean)
constructor, to always enable header validation.HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse, boolean validateHeaders, int initialBufferSize)
Deprecated.Prefer theHttpClientCodec(HttpDecoderConfig, boolean, boolean)
constructor, to always enable header validation.HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse, boolean validateHeaders, int initialBufferSize, boolean parseHttpAfterConnectRequest)
Deprecated.Prefer theHttpClientCodec(HttpDecoderConfig, boolean, boolean)
constructor, to always enable header validation.HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse, boolean validateHeaders, int initialBufferSize, boolean parseHttpAfterConnectRequest, boolean allowDuplicateContentLengths)
Deprecated.Prefer theHttpClientCodec(HttpDecoderConfig, boolean, boolean)
constructor, to always enable header validation.HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse, boolean validateHeaders, int initialBufferSize, boolean parseHttpAfterConnectRequest, boolean allowDuplicateContentLengths, boolean allowPartialChunks)
Deprecated.Prefer theHttpClientCodec(HttpDecoderConfig, boolean, boolean)
constructor, to always enable header validation.HttpClientCodec(HttpDecoderConfig config, boolean parseHttpAfterConnectRequest, boolean failOnMissingResponse)
Creates a new instance with the specified decoder options.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isSingleDecode()
void
prepareUpgradeFrom(ChannelHandlerContext ctx)
Prepares to upgrade to another protocol from HTTP.void
setSingleDecode(boolean singleDecode)
void
upgradeFrom(ChannelHandlerContext ctx)
Upgrades to another protocol from HTTP.-
Methods inherited from class io.netty.channel.CombinedChannelDuplexHandler
bind, channelActive, channelInactive, channelRead, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, close, connect, deregister, disconnect, exceptionCaught, flush, handlerAdded, handlerRemoved, inboundHandler, init, outboundHandler, read, removeInboundHandler, removeOutboundHandler, userEventTriggered, write
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, isSharable
-
-
-
-
Field Detail
-
DEFAULT_FAIL_ON_MISSING_RESPONSE
public static final boolean DEFAULT_FAIL_ON_MISSING_RESPONSE
- See Also:
- Constant Field Values
-
DEFAULT_PARSE_HTTP_AFTER_CONNECT_REQUEST
public static final boolean DEFAULT_PARSE_HTTP_AFTER_CONNECT_REQUEST
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
HttpClientCodec
public HttpClientCodec()
Creates a new instance with the default decoder options (maxInitialLineLength (4096)
,maxHeaderSize (8192)
, andmaxChunkSize (8192)
).
-
HttpClientCodec
public HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize)
Creates a new instance with the specified decoder options.
-
HttpClientCodec
public HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse)
Creates a new instance with the specified decoder options.
-
HttpClientCodec
@Deprecated public HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse, boolean validateHeaders)
Deprecated.Prefer theHttpClientCodec(int, int, int, boolean)
constructor, to always enable header validation.Creates a new instance with the specified decoder options.
-
HttpClientCodec
@Deprecated public HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse, boolean validateHeaders, boolean parseHttpAfterConnectRequest)
Deprecated.Prefer theHttpClientCodec(HttpDecoderConfig, boolean, boolean)
constructor, to always enable header validation.Creates a new instance with the specified decoder options.
-
HttpClientCodec
@Deprecated public HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse, boolean validateHeaders, int initialBufferSize)
Deprecated.Prefer theHttpClientCodec(HttpDecoderConfig, boolean, boolean)
constructor, to always enable header validation.Creates a new instance with the specified decoder options.
-
HttpClientCodec
@Deprecated public HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse, boolean validateHeaders, int initialBufferSize, boolean parseHttpAfterConnectRequest)
Deprecated.Prefer theHttpClientCodec(HttpDecoderConfig, boolean, boolean)
constructor, to always enable header validation.Creates a new instance with the specified decoder options.
-
HttpClientCodec
@Deprecated public HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse, boolean validateHeaders, int initialBufferSize, boolean parseHttpAfterConnectRequest, boolean allowDuplicateContentLengths)
Deprecated.Prefer theHttpClientCodec(HttpDecoderConfig, boolean, boolean)
constructor, to always enable header validation.Creates a new instance with the specified decoder options.
-
HttpClientCodec
@Deprecated public HttpClientCodec(int maxInitialLineLength, int maxHeaderSize, int maxChunkSize, boolean failOnMissingResponse, boolean validateHeaders, int initialBufferSize, boolean parseHttpAfterConnectRequest, boolean allowDuplicateContentLengths, boolean allowPartialChunks)
Deprecated.Prefer theHttpClientCodec(HttpDecoderConfig, boolean, boolean)
constructor, to always enable header validation.Creates a new instance with the specified decoder options.
-
HttpClientCodec
public HttpClientCodec(HttpDecoderConfig config, boolean parseHttpAfterConnectRequest, boolean failOnMissingResponse)
Creates a new instance with the specified decoder options.
-
-
Method Detail
-
prepareUpgradeFrom
public void prepareUpgradeFrom(ChannelHandlerContext ctx)
Prepares to upgrade to another protocol from HTTP. Disables theHttpClientCodec.Encoder
.- Specified by:
prepareUpgradeFrom
in interfaceHttpClientUpgradeHandler.SourceCodec
-
upgradeFrom
public void upgradeFrom(ChannelHandlerContext ctx)
Upgrades to another protocol from HTTP. Removes theHttpClientCodec.Decoder
andHttpClientCodec.Encoder
from the pipeline.- Specified by:
upgradeFrom
in interfaceHttpClientUpgradeHandler.SourceCodec
-
setSingleDecode
public void setSingleDecode(boolean singleDecode)
-
isSingleDecode
public boolean isSingleDecode()
-
-