public class HttpServerFilter extends HttpCodecFilter
HttpCodecFilter
implementation, which is responsible for
decoding HttpRequestPacket
and encoding HttpResponsePacket
messages.
This Filter is usually used, when we build an asynchronous HTTP server
connection.HttpCodecFilter
,
HttpClientFilter
HttpCodecFilter.ContentParsingState, HttpCodecFilter.HeaderParsingState
Modifier and Type | Field and Description |
---|---|
static String |
HTTP_SERVER_REQUEST_ATTR_NAME |
static FilterChainEvent |
RESPONSE_COMPLETE_EVENT |
chunkingEnabled, contentEncodings, DEFAULT_MAX_HTTP_PACKET_HEADER_SIZE, FLUSH_AND_CLOSE_HANDLER, maxHeadersSize, monitoringConfig
Constructor and Description |
---|
HttpServerFilter()
Deprecated.
Next major release will include builders for filters requiring configuration. Constructors will be hidden.
|
HttpServerFilter(boolean chunkingEnabled,
int maxHeadersSize,
KeepAlive keepAlive,
DelayedExecutor executor)
Deprecated.
Next major release will include builders for filters requiring configuration. Constructors will be hidden.
|
HttpServerFilter(boolean chunkingEnabled,
int maxHeadersSize,
String defaultResponseContentType,
KeepAlive keepAlive,
DelayedExecutor executor)
Deprecated.
Next major release will include builders for filters requiring configuration. Constructors will be hidden.
|
HttpServerFilter(boolean chunkingEnabled,
int maxHeadersSize,
String defaultResponseContentType,
KeepAlive keepAlive,
DelayedExecutor executor,
int maxRequestHeaders,
int maxResponseHeaders)
Deprecated.
Next major release will include builders for filters requiring configuration. Constructors will be hidden.
|
Modifier and Type | Method and Description |
---|---|
protected HttpContent |
customizeErrorResponse(HttpResponsePacket response) |
protected Buffer |
encodeHttpPacket(FilterChainContext ctx,
HttpPacket input) |
String |
getDefaultResponseContentType() |
NextAction |
handleEvent(FilterChainContext ctx,
FilterChainEvent event)
Handle custom event associated with the
Connection . |
NextAction |
handleRead(FilterChainContext ctx)
The method is called, once we have received a
Buffer ,
which has to be transformed into HTTP request packet part. |
protected void |
onHttpContentEncoded(HttpContent content,
FilterChainContext ctx)
Invoked when a HTTP body chunk has been encoded in preparation to being
transmitted to the user-agent.
|
protected void |
onHttpContentError(HttpHeader httpHeader,
FilterChainContext ctx,
Throwable t)
Callback which is invoked when parsing an HTTP message payload fails.
|
protected void |
onHttpContentParsed(HttpContent content,
FilterChainContext ctx)
Invoked as request/response body content has been processed by this
Filter . |
protected void |
onHttpHeaderError(HttpHeader httpHeader,
FilterChainContext ctx,
Throwable t)
Callback which is invoked when parsing an HTTP message header fails.
|
protected boolean |
onHttpHeaderParsed(HttpHeader httpHeader,
Buffer buffer,
FilterChainContext ctx)
Callback invoked when the HTTP message header parsing is complete.
|
protected void |
onHttpHeadersEncoded(HttpHeader httpHeader,
FilterChainContext ctx)
Invoked when HTTP headers have been encoded in preparation to being
transmitted to the user-agent.
|
protected void |
onHttpHeadersParsed(HttpHeader httpHeader,
FilterChainContext ctx)
Invoked when all headers of the packet have been parsed.
|
protected boolean |
onHttpPacketParsed(HttpHeader httpHeader,
FilterChainContext ctx)
Callback method, called when
HttpPacket parsing has been completed. |
protected void |
onInitialLineEncoded(HttpHeader header,
FilterChainContext ctx)
Invoked when the intial response line has been encoded in preparation
to being transmitted to the user-agent.
|
protected void |
onInitialLineParsed(HttpHeader httpHeader,
FilterChainContext ctx)
Invoked when either the request line or status line has been parsed.
|
void |
prepareForShutdown()
Method, which might be optionally called to prepare the filter for
shutdown.
|
void |
setDefaultResponseContentType(String defaultResponseContentType) |
addContentEncoding, addTransferEncoding, createJmxManagementObject, decodeHttpPacket, decodeHttpPacketFromBuffer, decodeHttpPacketFromBytes, encodeHttpPacket, encodeKnownHeaders, encodeMimeHeader, encodeMimeHeaders, flushAndClose, getContentEncodings, getMonitoringConfig, getTransferEncodings, gracefullyCloseConnection, handleRead, handleWrite, isChunkingEnabled, isSecure, parseHeaderFromBuffer, parseHeaderFromBytes, parseHeaderName, parseHeaderName, parseHeadersFromBuffer, parseHeadersFromBytes, parseHeaderValue, parseHeaderValue, removeContentEncoding, removeTransferEncoding
bind
createContext, exceptionOccurred, handleAccept, handleClose, handleConnect, onAdded, onFilterChainChanged, onRemoved
public static final String HTTP_SERVER_REQUEST_ATTR_NAME
public static final FilterChainEvent RESPONSE_COMPLETE_EVENT
@Deprecated public HttpServerFilter()
@Deprecated public HttpServerFilter(boolean chunkingEnabled, int maxHeadersSize, KeepAlive keepAlive, DelayedExecutor executor)
chunkingEnabled
- flag indicating whether or not chunking should
be allowed or not.maxHeadersSize
- the maximum size of an inbound HTTP message header.keepAlive
- keep-alive configuration for this filter instance.executor
- DelayedExecutor
for handling keep-alive.@Deprecated public HttpServerFilter(boolean chunkingEnabled, int maxHeadersSize, String defaultResponseContentType, KeepAlive keepAlive, DelayedExecutor executor)
chunkingEnabled
- flag indicating whether or not chunking should
be allowed or not.maxHeadersSize
- the maximum size of an inbound HTTP message header.defaultResponseContentType
- the content type that the response should
use if no content had been specified at the time the response is committed.keepAlive
- keep-alive configuration for this filter instance.executor
- DelayedExecutor
for handling keep-alive. If null -
keep-alive idle connections should be managed outside HttpServerFilter.@Deprecated public HttpServerFilter(boolean chunkingEnabled, int maxHeadersSize, String defaultResponseContentType, KeepAlive keepAlive, DelayedExecutor executor, int maxRequestHeaders, int maxResponseHeaders)
chunkingEnabled
- flag indicating whether or not chunking should
be allowed or not.maxHeadersSize
- the maximum size of an inbound HTTP message header.defaultResponseContentType
- the content type that the response should
use if no content had been specified at the time the response is committed.keepAlive
- keep-alive configuration for this filter instance.executor
- DelayedExecutor
for handling keep-alive. If null -
keep-alive idle connections should be managed outside HttpServerFilter.maxRequestHeaders
- maximum number of request headers allowed for a single request.maxResponseHeaders
- maximum number of response headers allowed for a single response.public String getDefaultResponseContentType()
public void setDefaultResponseContentType(String defaultResponseContentType)
public NextAction handleRead(FilterChainContext ctx) throws IOException
Buffer
,
which has to be transformed into HTTP request packet part.
Filter gets Buffer
, which represents a part or complete HTTP
request message. As the result of "read" transformation - we will get
HttpContent
message, which will represent HTTP request packet
content (might be zero length content) and reference
to a HttpHeader
, which contains HTTP request message header.handleRead
in interface Filter
handleRead
in class BaseFilter
ctx
- Request processing contextNextAction
IOException
protected boolean onHttpHeaderParsed(HttpHeader httpHeader, Buffer buffer, FilterChainContext ctx)
HttpCodecFilter
onHttpHeaderParsed
in class HttpCodecFilter
httpHeader
- HttpHeader
, which represents parsed HTTP packet headerbuffer
- Buffer
the header was parsed fromctx
- processing context.true
if an error has occurred while processing
the header portion of the HTTP request, otherwise returns
false
.protected final boolean onHttpPacketParsed(HttpHeader httpHeader, FilterChainContext ctx)
HttpCodecFilter
HttpPacket
parsing has been completed.onHttpPacketParsed
in class HttpCodecFilter
httpHeader
- HttpHeader
, which represents parsed HTTP packet headerctx
- processing context.true
if an error has occurred while processing
the header portion of the HTTP request, otherwise returns
false
.sprotected void onInitialLineParsed(HttpHeader httpHeader, FilterChainContext ctx)
HttpCodecFilter
Invoked when either the request line or status line has been parsed.
onInitialLineParsed
in class HttpCodecFilter
httpHeader
- HttpHeader
, which represents HTTP packet headerctx
- processing context.protected void onHttpHeadersParsed(HttpHeader httpHeader, FilterChainContext ctx)
HttpCodecFilter
Invoked when all headers of the packet have been parsed. Depending on the transfer encoding being used by the current request, this method may be invoked multiple times.
onHttpHeadersParsed
in class HttpCodecFilter
httpHeader
- HttpHeader
, which represents HTTP packet headerctx
- processing context.protected void onHttpContentParsed(HttpContent content, FilterChainContext ctx)
HttpCodecFilter
Invoked as request/response body content has been processed by this
Filter
.
onHttpContentParsed
in class HttpCodecFilter
content
- request/response body contentctx
- processing context.protected void onHttpHeaderError(HttpHeader httpHeader, FilterChainContext ctx, Throwable t) throws IOException
HttpCodecFilter
Callback which is invoked when parsing an HTTP message header fails. The processing logic has to take care about error handling and following connection closing.
onHttpHeaderError
in class HttpCodecFilter
httpHeader
- HttpHeader
, which represents HTTP packet headerctx
- the FilterChainContext
processing this requestt
- the cause of the errorIOException
protected void onHttpContentError(HttpHeader httpHeader, FilterChainContext ctx, Throwable t) throws IOException
HttpCodecFilter
Callback which is invoked when parsing an HTTP message payload fails. The processing logic has to take care about error handling and following connection closing.
onHttpContentError
in class HttpCodecFilter
httpHeader
- HttpHeader
, which represents HTTP packet headerctx
- the FilterChainContext
processing this requestt
- the cause of the errorIOException
protected Buffer encodeHttpPacket(FilterChainContext ctx, HttpPacket input)
encodeHttpPacket
in class HttpCodecFilter
protected void onInitialLineEncoded(HttpHeader header, FilterChainContext ctx)
HttpCodecFilter
Invoked when the intial response line has been encoded in preparation to being transmitted to the user-agent.
onInitialLineEncoded
in class HttpCodecFilter
header
- HttpHeader
, which represents HTTP packet headerctx
- processing context.protected void onHttpHeadersEncoded(HttpHeader httpHeader, FilterChainContext ctx)
HttpCodecFilter
Invoked when HTTP headers have been encoded in preparation to being transmitted to the user-agent.
onHttpHeadersEncoded
in class HttpCodecFilter
httpHeader
- HttpHeader
, which represents HTTP packet headerctx
- processing context.protected void onHttpContentEncoded(HttpContent content, FilterChainContext ctx)
HttpCodecFilter
Invoked when a HTTP body chunk has been encoded in preparation to being transmitted to the user-agent.
onHttpContentEncoded
in class HttpCodecFilter
content
- HttpContent
, which represents HTTP packet headerctx
- processing context.public NextAction handleEvent(FilterChainContext ctx, FilterChainEvent event) throws IOException
BaseFilter
Connection
.
This Filter
may either complete the required processing and
return StopAction
, or delegate remaining processing to the next
Filter
in a FilterChain
containing this Filter
by returning InvokeAction
.handleEvent
in interface Filter
handleEvent
in class BaseFilter
ctx
- FilterChainContext
NextAction
instruction for FilterChain
, how it
should continue the executionIOException
protected HttpContent customizeErrorResponse(HttpResponsePacket response)
public void prepareForShutdown()
prepareForShutdown
in class HttpCodecFilter
Copyright © 2014 Oracle Corporation. All rights reserved.