Overview Package Class Tree Deprecated Help PREV CLASS NEXT CLASS FRAMES NO FRAMES SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD
org.apache.coyote.http11
Class Http11Processorjava.lang.Object org.apache.coyote.http11.Http11Processor
- All Implemented Interfaces:
- ActionHook, Processor
- public class Http11Processor
- extends java.lang.Object
- implements Processor, 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 gzippedprotected 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 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 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 connectedprotected static org.apache.commons.logging.Log log
Logger.protected int maxKeepAliveRequests
Maximum number of Keep-Alive requests to honor.protected int maxPostSize
Max post size.protected org.apache.regexp.RE[] noCompressionUserAgents
List of user agents to not use gzip withprotected 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 connectedprotected Request request
Request object.protected Response response
Response object.protected org.apache.regexp.RE[] restrictedUserAgents
List of restricted user agents.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 ThreadPool threadPool
Associated thread pool.protected int timeout
Maximum timeout on uploads.
Constructor Summary Http11Processor()
Default constructor.Http11Processor(int headerBufferSize)
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 getMaxKeepAliveRequests()
Return the number of Keep-Alive requests that we will honor.int getMaxPostSize()
Return the maximum size of a POST which will be buffered in SSL mode.Request getRequest()
Get the request associated with this processor.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.io.InputStream input, java.io.OutputStream output)
Process pipelined HTTP requests using the specified input and output streams.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 setMaxPostSize(int mps)
Set the maximum size of a POST which will be buffered in SSL mode.void setNoCompressionUserAgents(org.apache.regexp.RE[] 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(org.apache.regexp.RE[] 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 setSocket(java.net.Socket socket)
Set the socket associated with this HTTP connection.void setSocketBuffer(int socketBuffer)
Set the socket buffer flag.void setSSLSupport(SSLSupport sslSupport)
Set the SSL information for this HTTP connection.void setThreadPool(ThreadPool threadPool)
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 org.apache.commons.logging.Log log
- Logger.
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 org.apache.regexp.RE[] restrictedUserAgents
- List of restricted user agents.
maxKeepAliveRequests
protected int maxKeepAliveRequests
- Maximum number of Keep-Alive requests to honor.
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.
maxPostSize
protected int maxPostSize
- Max post size.
noCompressionUserAgents
protected org.apache.regexp.RE[] 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).
threadPool
protected ThreadPool threadPool
- Associated thread pool.
Constructor Detail Http11Processor
public Http11Processor()
- Default constructor.
Http11Processor
public Http11Processor(int headerBufferSize)
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.
setThreadPool
public void setThreadPool(ThreadPool threadPool)
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(org.apache.regexp.RE[] 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 .
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(org.apache.regexp.RE[] 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.
setMaxPostSize
public void setMaxPostSize(int mps)
- Set the maximum size of a POST which will be buffered in SSL mode.
getMaxPostSize
public int getMaxPostSize()
- 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.
setSocket
public void setSocket(java.net.Socket socket) throws java.io.IOException
- Set the socket associated with this HTTP connection.
- Throws:
- java.io.IOException
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.
getRequest
public Request getRequest()
- Get the request associated with this processor.
- Returns:
process
public void process(java.io.InputStream input, java.io.OutputStream output) throws java.io.IOException
- Process pipelined HTTP requests using the specified input and output streams.
- Specified by:
- process in interface Processor
- Parameters:
- input - stream from which the HTTP requests will be read
- output - stream which will be used to output the HTTP responses
- 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.
- Specified by:
- setAdapter in interface Processor
- Parameters:
- adapter - the new adapter
getAdapter
public Adapter getAdapter()
- Get the associated adapter.
- Specified by:
- getAdapter in interface Processor
- 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.
Overview Package Class Tree Deprecated Help PREV CLASS NEXT CLASS FRAMES NO FRAMES SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD
Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.