Http11NioProcessor (Tomcat API Documentation)
Keywords: org.apache.coyote.http11.Http11NioProcessor class

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.coyote.http11
Class Http11NioProcessor

    java.lang.Object
      org.apache.coyote.http11.Http11NioProcessor

All Implemented Interfaces:
  ActionHook

    public class Http11NioProcessor

extends java.lang.Object
implements ActionHook

Processes HTTP requests.

Author:
  Remy Maucherat, Filip Hanik

Field Summary
`protected Adapter` | `adapter` Associated adapter.
`protected boolean` | `comet` Comet used.
`protected boolean` | `cometClose` Closed flag, a Comet async thread can signal for this Nio processor to be closed and recycled instead of waiting for a timeout.
`protected java.lang.String[]` | `compressableMimeTypes` List of MIMES which could be gzipped
`protected int` | `compressionLevel` Allowed compression level.
`protected int` | `compressionMinSize` Minimum contentsize to make compression.
`protected boolean` | `contentDelimitation` Content delimitator for the request (if false, the connection will be closed at the end of the request).
`protected boolean` | `disableUploadTimeout` Flag to disable setting a different time-out on uploads.
`protected NioEndpoint` | `endpoint` Associated endpoint.
`protected boolean` | `error` Error flag.
`protected boolean` | `expectation` Is there an expectation ?
`protected char[]` | `hostNameC` Host name (used to avoid useless B2C conversion on the host name).
`protected boolean` | `http09` HTTP/0.9 flag.
`protected boolean` | `http11` HTTP/1.1 flag.
`protected InternalNioInputBuffer` | `inputBuffer` Input.
`protected boolean` | `keepAlive` Keep-alive.
`protected java.lang.String` | `localAddr` The local Host address.
`protected java.lang.String` | `localName` Local Host associated with the current connection.
`protected int` | `localPort` Local port to which the socket is connected
`protected static Log` | `log` Logger.
`protected int` | `maxKeepAliveRequests` Maximum number of Keep-Alive requests to honor.
`protected int` | `maxSavePostSize` Max save post size.
`protected java.util.regex.Pattern[]` | `noCompressionUserAgents` List of user agents to not use gzip with
`protected InternalNioOutputBuffer` | `outputBuffer` Output.
`protected java.lang.String` | `remoteAddr` Remote Address associated with the current connection.
`protected java.lang.String` | `remoteHost` Remote Host associated with the current connection.
`protected int` | `remotePort` Remote port to which the socket is connected
`protected Request` | `request` Request object.
`protected Response` | `response` Response object.
`protected java.util.regex.Pattern[]` | `restrictedUserAgents` List of restricted user agents.
`protected NioEndpoint.SendfileData` | `sendfileData` Sendfile data.
`protected java.lang.String` | `server` Allow a customized the server header for the tin-foil hat folks.
`protected static StringManager` | `sm` The string manager for this package.
`protected NioChannel` | `socket` Socket associated with the current connection.
`protected int` | `socketBuffer` Socket buffering.
`protected boolean` | `ssl` SSL enabled ?
`protected SSLSupport` | `sslSupport` SSL information.
`protected int` | `timeout` Maximum timeout on uploads. 5 minutes as in Apache HTTPD server.

Constructor Summary
`Http11NioProcessor(int rxBufSize, int txBufSize, int maxHttpHeaderSize, NioEndpoint endpoint)`

Method Summary
`void` | `action(ActionCode actionCode, java.lang.Object param)` Send an action to the connector.
`void` | `addCompressableMimeType(java.lang.String mimeType)` Add a mime-type which will be compressable The mime-type String will be exactly matched in the response mime-type header .
`protected void` | `addFilter(java.lang.String className)` Add input or output filter.
`protected boolean` | `addInputFilter(InputFilter[] inputFilters, java.lang.String encodingName)` Add an input filter to the current request.
`void` | `addNoCompressionUserAgent(java.lang.String userAgent)` Add user-agent for which gzip compression didn't works The user agent String given will be exactly matched to the user-agent header submitted by the client.
`void` | `addRestrictedUserAgent(java.lang.String userAgent)` Add restricted user-agent (which will downgrade the connector to HTTP/1.0 mode).
`void` | `endRequest()`
`NioEndpoint.Handler.SocketState` | `event(SocketStatus status)` Process pipelined HTTP requests using the specified input and output streams.
`protected int` | `findBytes(ByteChunk bc, byte[] b)` Specialized utility method: find a sequence of lower case bytes inside a ByteChunk.
`java.lang.String[]` | `findCompressableMimeTypes()` Return the list of restricted user agents.
`java.lang.String[]` | `findRestrictedUserAgents()` Return the list of restricted user agents.
`Adapter` | `getAdapter()` Get the associated adapter.
`java.lang.String` | `getCompression()` Return compression level.
`boolean` | `getDisableUploadTimeout()` Get the flag that controls upload time-outs.
`int` | `getMaxKeepAliveRequests()` Return the number of Keep-Alive requests that we will honor.
`int` | `getMaxSavePostSize()` Return the maximum size of a POST which will be buffered in SSL mode.
`Request` | `getRequest()` Get the request associated with this processor.
`java.lang.String` | `getServer()` Get the server header name.
`int` | `getSocketBuffer()` Get the socket buffer flag.
`SSLSupport` | `getSslSupport()`
`int` | `getTimeout()` Get the upload timeout.
`protected void` | `initializeFilters()` Initialize standard input and output filters.
`void` | `parseHost(MessageBytes valueMB)` Parse host.
`protected void` | `prepareRequest()` After reading the request headers, we have to setup the request filters.
`protected void` | `prepareResponse()` When committing the response, we have to validate the set of headers, as well as setup the response filters.
`NioEndpoint.Handler.SocketState` | `process(NioChannel socket)` Process pipelined HTTP requests using the specified input and output streams.
`void` | `recycle()`
`void` | `setAdapter(Adapter adapter)` Set the associated adapter.
`void` | `setCompressableMimeTypes(java.lang.String compressableMimeTypes)` Set compressable mime-type list List contains users agents separated by ',' : ie: "text/html,text/xml,text/plain"
`void` | `setCompressableMimeTypes(java.lang.String[] compressableMimeTypes)` Set compressable mime-type list (this method is best when used with a large number of connectors, where it would be better to have all of them referenced a single array).
`void` | `setCompression(java.lang.String compression)` Set compression level.
`void` | `setCompressionMinSize(int compressionMinSize)` Set Minimum size to trigger compression.
`void` | `setDisableUploadTimeout(boolean isDisabled)` Set the flag to control upload time-outs.
`void` | `setMaxKeepAliveRequests(int mkar)` Set the maximum number of Keep-Alive requests to honor.
`void` | `setMaxSavePostSize(int msps)` Set the maximum size of a POST which will be buffered in SSL mode.
`void` | `setNoCompressionUserAgents(java.util.regex.Pattern[] noCompressionUserAgents)` Set no compression user agent list (this method is best when used with a large number of connectors, where it would be better to have all of them referenced a single array).
`void` | `setNoCompressionUserAgents(java.lang.String noCompressionUserAgents)` Set no compression user agent list.
`void` | `setRestrictedUserAgents(java.util.regex.Pattern[] restrictedUserAgents)` Set restricted user agent list (this method is best when used with a large number of connectors, where it would be better to have all of them referenced a single array).
`void` | `setRestrictedUserAgents(java.lang.String restrictedUserAgents)` Set restricted user agent list (which will downgrade the connector to HTTP/1.0 mode).
`void` | `setServer(java.lang.String server)` Set the server header name.
`void` | `setSocketBuffer(int socketBuffer)` Set the socket buffer flag.
`void` | `setSslSupport(SSLSupport sslSupport)`
`void` | `setTimeout(int timeouts)` Set the upload timeout.
`protected boolean` | `statusDropsConnection(int status)` Determine if we must drop the connection because of the HTTP status code.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### log

    protected static Log log

  Logger.

### sm

    protected static StringManager sm

  The string manager for this package.

### sslSupport

    protected SSLSupport sslSupport

  SSL information.

### adapter

    protected Adapter adapter

  Associated adapter.

### request

    protected Request request

  Request object.

### response

    protected Response response

  Response object.

### inputBuffer

    protected InternalNioInputBuffer inputBuffer

  Input.

### outputBuffer

    protected InternalNioOutputBuffer outputBuffer

  Output.

### error

    protected boolean error

  Error flag.

### keepAlive

    protected boolean keepAlive

  Keep-alive.

### http11

    protected boolean http11

  HTTP/1.1 flag.

### http09

    protected boolean http09

  HTTP/0.9 flag.

### sendfileData

    protected NioEndpoint.SendfileData sendfileData

  Sendfile data.

### comet

    protected boolean comet

  Comet used.

### cometClose

    protected boolean cometClose

  Closed flag, a Comet async thread can signal for this Nio processor to be closed and recycled instead of waiting for a timeout. Closed by HttpServletResponse.getWriter().close()

### contentDelimitation

    protected boolean contentDelimitation

  Content delimitator for the request (if false, the connection will be closed at the end of the request).

### expectation

    protected boolean expectation

  Is there an expectation ?

### restrictedUserAgents

    protected java.util.regex.Pattern[] restrictedUserAgents

  List of restricted user agents.

### maxKeepAliveRequests

    protected int maxKeepAliveRequests

  Maximum number of Keep-Alive requests to honor.

### ssl

    protected boolean ssl

  SSL enabled ?

### socket

    protected NioChannel socket

  Socket associated with the current connection.

### remoteAddr

    protected java.lang.String remoteAddr

  Remote Address associated with the current connection.

### remoteHost

    protected java.lang.String remoteHost

  Remote Host associated with the current connection.

### localName

    protected java.lang.String localName

  Local Host associated with the current connection.

### localPort

    protected int localPort

  Local port to which the socket is connected

### remotePort

    protected int remotePort

  Remote port to which the socket is connected

### localAddr

    protected java.lang.String localAddr

  The local Host address.

### timeout

    protected int timeout

  Maximum timeout on uploads. 5 minutes as in Apache HTTPD server.

### disableUploadTimeout

    protected boolean disableUploadTimeout

  Flag to disable setting a different time-out on uploads.

### compressionLevel

    protected int compressionLevel

  Allowed compression level.

### compressionMinSize

    protected int compressionMinSize

  Minimum contentsize to make compression.

### socketBuffer

    protected int socketBuffer

  Socket buffering.

### maxSavePostSize

    protected int maxSavePostSize

  Max save post size.

### noCompressionUserAgents

    protected java.util.regex.Pattern[] noCompressionUserAgents

  List of user agents to not use gzip with

### compressableMimeTypes

    protected java.lang.String[] compressableMimeTypes

  List of MIMES which could be gzipped

### hostNameC

    protected char[] hostNameC

  Host name (used to avoid useless B2C conversion on the host name).

### endpoint

    protected NioEndpoint endpoint

  Associated endpoint.

### server

    protected java.lang.String server

  Allow a customized the server header for the tin-foil hat folks.

Constructor Detail

### Http11NioProcessor

    public Http11NioProcessor(int rxBufSize,
                              int txBufSize,
                              int maxHttpHeaderSize,
                              NioEndpoint endpoint)

Method Detail

### getCompression

    public java.lang.String getCompression()

  Return compression level.

### setCompression

    public void setCompression(java.lang.String compression)

  Set compression level.

### setCompressionMinSize

    public void setCompressionMinSize(int compressionMinSize)

  Set Minimum size to trigger compression.

### addNoCompressionUserAgent

    public void addNoCompressionUserAgent(java.lang.String userAgent)

  Add user-agent for which gzip compression didn't works The user agent String given will be exactly matched to the user-agent header submitted by the client.

  Parameters:
    `userAgent` - user-agent string

### setNoCompressionUserAgents

    public void setNoCompressionUserAgents(java.util.regex.Pattern[] noCompressionUserAgents)

  Set no compression user agent list (this method is best when used with a large number of connectors, where it would be better to have all of them referenced a single array).

### setNoCompressionUserAgents

    public void setNoCompressionUserAgents(java.lang.String noCompressionUserAgents)

  Set no compression user agent list. List contains users agents separated by ',' : ie: "gorilla,desesplorer,tigrus"

### addCompressableMimeType

    public void addCompressableMimeType(java.lang.String mimeType)

  Add a mime-type which will be compressable The mime-type String will be exactly matched in the response mime-type header .

  Parameters:
    `mimeType` - mime-type string

### setCompressableMimeTypes

    public void setCompressableMimeTypes(java.lang.String[] compressableMimeTypes)

  Set compressable mime-type list (this method is best when used with a large number of connectors, where it would be better to have all of them referenced a single array).

### setCompressableMimeTypes

    public void setCompressableMimeTypes(java.lang.String compressableMimeTypes)

  Set compressable mime-type list List contains users agents separated by ',' : ie: "text/html,text/xml,text/plain"

### findCompressableMimeTypes

    public java.lang.String[] findCompressableMimeTypes()

  Return the list of restricted user agents.

### addFilter

    protected void addFilter(java.lang.String className)

  Add input or output filter.

  Parameters:
    `className` - class name of the filter

### addRestrictedUserAgent

    public void addRestrictedUserAgent(java.lang.String userAgent)

  Add restricted user-agent (which will downgrade the connector to HTTP/1.0 mode). The user agent String given will be matched via regexp to the user-agent header submitted by the client.

  Parameters:
    `userAgent` - user-agent string

### setRestrictedUserAgents

    public void setRestrictedUserAgents(java.util.regex.Pattern[] restrictedUserAgents)

  Set restricted user agent list (this method is best when used with a large number of connectors, where it would be better to have all of them referenced a single array).

### setRestrictedUserAgents

    public void setRestrictedUserAgents(java.lang.String restrictedUserAgents)

  Set restricted user agent list (which will downgrade the connector to HTTP/1.0 mode). List contains users agents separated by ',' : ie: "gorilla,desesplorer,tigrus"

### findRestrictedUserAgents

    public java.lang.String[] findRestrictedUserAgents()

  Return the list of restricted user agents.

### setMaxKeepAliveRequests

    public void setMaxKeepAliveRequests(int mkar)

  Set the maximum number of Keep-Alive requests to honor. This is to safeguard from DoS attacks. Setting to a negative value disables the check.

### getMaxKeepAliveRequests

    public int getMaxKeepAliveRequests()

  Return the number of Keep-Alive requests that we will honor.

### setMaxSavePostSize

    public void setMaxSavePostSize(int msps)

  Set the maximum size of a POST which will be buffered in SSL mode.

### getMaxSavePostSize

    public int getMaxSavePostSize()

  Return the maximum size of a POST which will be buffered in SSL mode.

### setDisableUploadTimeout

    public void setDisableUploadTimeout(boolean isDisabled)

  Set the flag to control upload time-outs.

### getDisableUploadTimeout

    public boolean getDisableUploadTimeout()

  Get the flag that controls upload time-outs.

### setSocketBuffer

    public void setSocketBuffer(int socketBuffer)

  Set the socket buffer flag.

### getSocketBuffer

    public int getSocketBuffer()

  Get the socket buffer flag.

### setTimeout

    public void setTimeout(int timeouts)

  Set the upload timeout.

### getTimeout

    public int getTimeout()

  Get the upload timeout.

### setServer

    public void setServer(java.lang.String server)

  Set the server header name.

### getServer

    public java.lang.String getServer()

  Get the server header name.

### getRequest

    public Request getRequest()

  Get the request associated with this processor.

  Returns:
    The request

### event

    public NioEndpoint.Handler.SocketState event(SocketStatus status)
                                          throws java.io.IOException

  Process pipelined HTTP requests using the specified input and output streams.

  Throws:
    `java.io.IOException` - error during an I/O operation

### process

    public NioEndpoint.Handler.SocketState process(NioChannel socket)
                                            throws java.io.IOException

  Process pipelined HTTP requests using the specified input and output streams.

  Throws:
    `java.io.IOException` - error during an I/O operation

### endRequest

    public void endRequest()

### recycle

    public void recycle()

### action

    public void action(ActionCode actionCode,
                       java.lang.Object param)

  Send an action to the connector.

  Specified by:
    `action` in interface `ActionHook`
  Parameters:
    `actionCode` - Type of the action
    `param` - Action parameter

### setAdapter

    public void setAdapter(Adapter adapter)

  Set the associated adapter.

  Parameters:
    `adapter` - the new adapter

### setSslSupport

    public void setSslSupport(SSLSupport sslSupport)

### getAdapter

    public Adapter getAdapter()

  Get the associated adapter.

  Returns:
    the associated adapter

### getSslSupport

    public SSLSupport getSslSupport()

### prepareRequest

    protected void prepareRequest()

  After reading the request headers, we have to setup the request filters.

### parseHost

    public void parseHost(MessageBytes valueMB)

  Parse host.

### prepareResponse

    protected void prepareResponse()
                            throws java.io.IOException

  When committing the response, we have to validate the set of headers, as well as setup the response filters.

  Throws:
    `java.io.IOException`

### initializeFilters

    protected void initializeFilters()

  Initialize standard input and output filters.

### addInputFilter

    protected boolean addInputFilter(InputFilter[] inputFilters,
                                     java.lang.String encodingName)

  Add an input filter to the current request.

  Returns:
    false if the encoding was not found (which would mean it is unsupported)

### findBytes

    protected int findBytes(ByteChunk bc,
                            byte[] b)

  Specialized utility method: find a sequence of lower case bytes inside a ByteChunk.

### statusDropsConnection

    protected boolean statusDropsConnection(int status)

  Determine if we must drop the connection because of the HTTP status code. Use the same list of codes as Apache/httpd.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.