org.jboss.netty.handler.codec.http
类 HttpMessageDecoder

java.lang.Object
  继承者 org.jboss.netty.channel.SimpleChannelUpstreamHandler
      继承者 org.jboss.netty.handler.codec.replay.ReplayingDecoder<org.jboss.netty.handler.codec.http.HttpMessageDecoder.State>
          继承者 org.jboss.netty.handler.codec.http.HttpMessageDecoder
所有已实现的接口:
ChannelHandler, ChannelUpstreamHandler
直接已知子类:
HttpRequestDecoder, HttpResponseDecoder, RtspMessageDecoder

public abstract class HttpMessageDecoder
extends ReplayingDecoder<org.jboss.netty.handler.codec.http.HttpMessageDecoder.State>

Decodes ChannelBuffers into HttpMessages and HttpChunks.

Parameters that prevents excessive memory consumption

NameMeaning
maxInitialLineLength The maximum length of the initial line (e.g. "GET / HTTP/1.0" or "HTTP/1.0 200 OK") If the length of the initial line exceeds this value, a TooLongFrameException will be raised.
maxHeaderSize The maximum length of all headers. If the sum of the length of each header exceeds this value, a TooLongFrameException will be raised.
maxChunkSize The maximum length of the content or each chunk. If the content length (or the length of each chunk) exceeds this value, the content or chunk will be split into multiple HttpChunks whose length is maxChunkSize at maximum.

Chunked Content

If the content of an HTTP message is greater than maxChunkSize or the transfer encoding of the HTTP message is 'chunked', this decoder generates one HttpMessage instance and its following HttpChunks per single HTTP message to avoid excessive memory consumption. For example, the following HTTP message:
 GET / HTTP/1.1
 Transfer-Encoding: chunked

 1a
 abcdefghijklmnopqrstuvwxyz
 10
 1234567890abcdef
 0
 Content-MD5: ...
 [blank line]
 
triggers HttpRequestDecoder to generate 4 objects:
  1. An HttpRequest whose chunked property is true,
  2. The first HttpChunk whose content is 'abcdefghijklmnopqrstuvwxyz',
  3. The second HttpChunk whose content is '1234567890abcdef', and
  4. An HttpChunkTrailer which marks the end of the content.
If you prefer not to handle HttpChunks by yourself for your convenience, insert HttpChunkAggregator after this decoder in the ChannelPipeline. However, please note that your server might not be as memory efficient as without the aggregator.

Extensibility

Please note that this decoder is designed to be extended to implement a protocol derived from HTTP, such as RTSP and ICAP. To implement the decoder of such a derived protocol, extend this class and implement all abstract methods properly.


嵌套类摘要
 
从接口 org.jboss.netty.channel.ChannelHandler 继承的嵌套类/接口
ChannelHandler.Sharable
 
方法摘要
 
从类 org.jboss.netty.handler.codec.replay.ReplayingDecoder 继承的方法
channelClosed, channelDisconnected, exceptionCaught, messageReceived
 
从类 org.jboss.netty.channel.SimpleChannelUpstreamHandler 继承的方法
channelBound, channelConnected, channelInterestChanged, channelOpen, channelUnbound, childChannelClosed, childChannelOpen, handleUpstream, writeComplete
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait