Apache Tomcat 6.0.53

## org.apache.coyote.http11
Class Http11Processor

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

All Implemented Interfaces:
  ActionHook

    public class Http11Processor

extends java.lang.Object
implements ActionHook

Processes HTTP requests.

Author:
  Remy Maucherat

Field Summary
`protected Adapter` | `adapter` Associated adapter.
`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 JIoEndpoint` | `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 InternalInputBuffer` | `inputBuffer` Input.
`protected static boolean` | `isSecurityEnabled`
`protected boolean` | `keepAlive` Keep-alive.
`protected int` | `keepAliveTimeout` The number of seconds Tomcat will wait for a subsequent request before closing the connection.
`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 saved post size.
`protected java.util.regex.Pattern[]` | `noCompressionUserAgents` List of user agents to not use gzip with
`protected InternalOutputBuffer` | `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 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 java.net.Socket` | `socket` Socket associated with the current connection.
`protected int` | `socketBuffer` Socket buffering.
`protected SSLSupport` | `sslSupport` SSL information.
`protected boolean` | `started` State flag.
`protected int` | `timeout` Maximum timeout on uploads. 5 minutes as in Apache HTTPD server.

Constructor Summary
`Http11Processor(int headerBufferSize, JIoEndpoint 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).
`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` | `getKeepAliveTimeout()` Return the number Keep-Alive timeout.
`int` | `getMaxCookieCount()`
`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.
`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.
`void` | `process(java.net.Socket theSocket)` Process pipelined HTTP requests on the specified socket.
`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` | `setKeepAliveTimeout(int timeout)` Set the Keep-Alive timeout.
`void` | `setMaxCookieCount(int maxCookieCount)`
`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)` Set the SSL information for this HTTP connection.
`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.

### isSecurityEnabled

    protected static boolean isSecurityEnabled

### adapter

    protected Adapter adapter

  Associated adapter.

### request

    protected Request request

  Request object.

### response

    protected Response response

  Response object.

### inputBuffer

    protected InternalInputBuffer inputBuffer

  Input.

### outputBuffer

    protected InternalOutputBuffer outputBuffer

  Output.

### started

    protected boolean started

  State flag.

### 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.

### 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.

### keepAliveTimeout

    protected int keepAliveTimeout

  The number of seconds Tomcat will wait for a subsequent request before closing the connection.

### sslSupport

    protected SSLSupport sslSupport

  SSL information.

### socket

    protected java.net.Socket 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 saved 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 JIoEndpoint endpoint

  Associated endpoint.

### server

    protected java.lang.String server

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

Constructor Detail

### Http11Processor

    public Http11Processor(int headerBufferSize,
                           JIoEndpoint 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.

### setKeepAliveTimeout

    public void setKeepAliveTimeout(int timeout)

  Set the Keep-Alive timeout.

### getKeepAliveTimeout

    public int getKeepAliveTimeout()

  Return the number Keep-Alive timeout.

### 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.

### setSSLSupport

    public void setSSLSupport(SSLSupport sslSupport)

  Set the SSL information for this HTTP connection.

### getMaxCookieCount

    public int getMaxCookieCount()

### setMaxCookieCount

    public void setMaxCookieCount(int maxCookieCount)

### 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

### process

    public void process(java.net.Socket theSocket)
                 throws java.io.IOException

  Process pipelined HTTP requests on the specified socket.

  Parameters:
    `theSocket` - Socket from which the HTTP requests will be read and the HTTP responses will be written.
  Throws:
    `java.io.IOException` - error during an I/O operation

### 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

### getAdapter

    public Adapter getAdapter()

  Get the associated adapter.

  Returns:
    the associated adapter

### 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()

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

### 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.

Apache Tomcat 6.0.53

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