JavaScript is disabled on your browser.
Skip navigation links
io.netty.handler.codec.http

Class HttpObjectDecoder

  • All Implemented Interfaces:
    ChannelHandler, ChannelInboundHandler
    Direct Known Subclasses:
    HttpRequestDecoder, HttpResponseDecoder, RtspDecoder, RtspObjectDecoder


    public abstract class HttpObjectDecoder
    extends ByteToMessageDecoder 
    Decodes ByteBufs into HttpMessages and HttpContents.

    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 HttpContents 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 HttpContents 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 3 objects:
    1. An HttpRequest,
    2. The first HttpContent whose content is 'abcdefghijklmnopqrstuvwxyz',
    3. The second LastHttpContent whose content is '1234567890abcdef', which marks the end of the content.
    If you prefer not to handle HttpContents by yourself for your convenience, insert HttpObjectAggregator 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.
    • Field Detail

      • validateHeaders

        protected final boolean validateHeaders
    • Constructor Detail

      • HttpObjectDecoder

        protected HttpObjectDecoder()
        Creates a new instance with the default maxInitialLineLength (4096}, maxHeaderSize (8192), and maxChunkSize (8192).
      • HttpObjectDecoder

        protected HttpObjectDecoder(int maxInitialLineLength,
         int maxHeaderSize,
         int maxChunkSize,
         boolean chunkedSupported)
        Creates a new instance with the specified parameters.
      • HttpObjectDecoder

        protected HttpObjectDecoder(int maxInitialLineLength,
         int maxHeaderSize,
         int maxChunkSize,
         boolean chunkedSupported,
         boolean validateHeaders)
        Creates a new instance with the specified parameters.
      • HttpObjectDecoder

        protected HttpObjectDecoder(int maxInitialLineLength,
         int maxHeaderSize,
         int maxChunkSize,
         boolean chunkedSupported,
         boolean validateHeaders,
         int initialBufferSize)
Skip navigation links

Copyright © 2008–2018 The Netty Project. All rights reserved.

AltStyle によって変換されたページ (->オリジナル) /