twisted.web.http.HTTPChannel(basic.LineReceiver, policies.TimeoutMixin)
class documentationtwisted.web.http
View Source
(View In Hierarchy)
Known subclasses: twisted.web.proxy.Proxy, twisted.web.proxy.ReverseProxy
Implements interfaces: twisted.internet.interfaces.ITransport
A receiver for HTTP requests.
Instance Variable | MAX_LENGTH | Maximum length for initial request line and each line from the header. |
Instance Variable | maxHeaders | Maximum number of headers allowed per request. (type: int ) |
Instance Variable | totalHeadersSize | Maximum bytes for request line plus all headers from the request. (type: int ) |
Method | __init__ | Undocumented |
Method | connectionMade | Called when a connection is made. |
Method | lineReceived | Called for each line from request until the end of headers when it enters binary mode. |
Method | headerReceived | Do pre-processing (for content-length) and store this header away. Enforce the per-request header limit. |
Method | allContentReceived | Undocumented |
Method | rawDataReceived | Override this for when raw data is received. |
Method | allHeadersReceived | Undocumented |
Method | checkPersistence | Check if the channel should close or not. |
Method | requestDone | Called by first request in queue when it is done. |
Method | timeoutConnection | Called when the connection times out. |
Method | connectionLost | Called when the connection is shut down. |
Method | isSecure | Return True
if this channel is using a secure transport. |
Method | writeHeaders | Called by Request objects to
write a complete set of HTTP headers to a transport. |
Method | write | Called by Request objects to
write response data. |
Method | writeSequence | Write a list of strings to the HTTP response. |
Method | getPeer | Get the remote address of this connection. |
Method | getHost | Get the local address of this connection. |
Method | loseConnection | Closes the connection. Will write any data that is pending to be sent on the network, but if this response has not yet been written to the network will not write anything. |
Method | registerProducer | Register to receive data from a producer. |
Method | unregisterProducer | Stop consuming data from a producer, without disconnecting. |
Instance Variable | _transferDecoder | None
or a decoder instance if the request body uses the chunked
Transfer-Encoding. (type: _ChunkedTransferDecoder ) |
Instance Variable | _receivedHeaderSize | Bytes received so far for the header. (type: int ) |
Instance Variable | _handlingRequest | Whether a request is currently being processed. (type: bool ) |
Instance Variable | _dataBuffer | Any data that has been received from the connection while processing an
outstanding request. (type: list
of bytes ) |
Instance Variable | _producer | Either the transport, if it provides interfaces.IPushProducer ,
or a null implementation of interfaces.IPushProducer .
Used to attempt to prevent the transport from producing excess data when
we're responding to a request. (type: interfaces.IPushProducer ) |
Method | _finishRequestBody | Undocumented |
Method | _send100Continue | Sends a 100 Continue response, used to signal to clients that further processing will be performed. |
Method | _respondToBadRequestAndDisconnect | This is a quick and dirty way of responding to bad requests. |
Inherited from TimeoutMixin:
Class Variable | timeOut | The number of seconds after which to timeout the connection. |
Method | callLater | Wrapper around reactor.callLater
for test purpose. |
Method | resetTimeout | Reset the timeout count down. |
Method | setTimeout | Change the timeout period |
Method | __timedOut | Undocumented |
Inherited from TimeoutMixin:
Class Variable | timeOut | The number of seconds after which to timeout the connection. |
Method | callLater | Wrapper around reactor.callLater
for test purpose. |
Method | resetTimeout | Reset the timeout count down. |
Method | setTimeout | Change the timeout period |
Method | __timedOut | Undocumented |
Inherited from TimeoutMixin:
Class Variable | timeOut | The number of seconds after which to timeout the connection. |
Method | callLater | Wrapper around reactor.callLater
for test purpose. |
Method | resetTimeout | Reset the timeout count down. |
Method | setTimeout | Change the timeout period |
Method | __timedOut | Undocumented |
Inherited from TimeoutMixin:
Class Variable | timeOut | The number of seconds after which to timeout the connection. |
Method | callLater | Wrapper around reactor.callLater
for test purpose. |
Method | resetTimeout | Reset the timeout count down. |
Method | setTimeout | Change the timeout period |
Method | __timedOut | Undocumented |
Inherited from TimeoutMixin:
Class Variable | timeOut | The number of seconds after which to timeout the connection. |
Method | callLater | Wrapper around reactor.callLater
for test purpose. |
Method | resetTimeout | Reset the timeout count down. |
Method | setTimeout | Change the timeout period |
Method | __timedOut | Undocumented |
None
or a decoder instance if the request body uses the chunked
Transfer-Encoding. (type: _ChunkedTransferDecoder
)
interfaces.IPushProducer
,
or a null implementation of interfaces.IPushProducer
.
Used to attempt to prevent the transport from producing excess data when
we're responding to a request. (type: interfaces.IPushProducer
)
Called when a connection is made.
This may be considered the initializer of the protocol, because it is called when the connection is completed. For clients, this is called once the connection to the server has been established; for servers, this is called after an accept() call stops blocking and a socket has been received. If you need to send any greeting or initial message, do it here.
Called for each line from request until the end of headers when it enters binary mode.
Do pre-processing (for content-length) and store this header away. Enforce the per-request header limit.
Parameters | line | A line from the header section of a request, excluding the line delimiter. (type: bytes ) |
Returns | A flag indicating whether the header was valid. (type: bool ) |
Check if the channel should close or not.
Parameters | request | The request most recently received over this channel against which checks will be made to determine if this connection can remain open after a matching response is returned. |
version | The version of the request. (type: bytes ) | |
Returns | A flag which, if True , indicates that this connection may
remain open to receive another request; if False , the
connection must be closed in order to indicate the completion of the
response to request . (type: bool ) |
Called when the connection times out.
Override to define behavior other than dropping the connection.
Called when the connection is shut down.
Clear any circular references here, and any external references to this Protocol. The connection has been closed.
Return True
if this channel is using a secure transport.
Normally this method returns True
if this instance is using a transport that implements interfaces.ISSLTransport
.
Returns | True
if this request is secure (type: bool ) |
Called by Request
objects to
write a complete set of HTTP headers to a transport.
Parameters | version | The HTTP version in use. (type: bytes ) |
code | The HTTP status code to write. (type: bytes ) | |
reason | The HTTP reason phrase to write. (type: bytes ) | |
headers | The headers to write to the transport. (type: twisted.web.http_headers.Headers ) |
Write a list of strings to the HTTP response.
Parameters | iovec | A list of byte strings to write to the stream. |
Returns | None |
Closes the connection. Will write any data that is pending to be sent on the network, but if this response has not yet been written to the network will not write anything.
Returns | None |
Register to receive data from a producer.
This sets self to be a consumer for a producer. When this object runs out of data (as when a send(2) call on a socket succeeds in moving the last data from a userspace buffer into a kernelspace buffer), it will ask the producer to resumeProducing().
For IPullProducer
providers, resumeProducing
will be called once each time data
is required.
For IPushProducer
providers, pauseProducing
will be called whenever the write
buffer fills up and resumeProducing
will only be called when
it empties.
Parameters | producer | The IProducer
that will be producing data. (type: IProducer
provider) |
streaming | True if producer provides IPushProducer ,
False if producer provides IPullProducer . (type: bool ) | |
Returns | None | |
Raises | RuntimeError | If a producer is already registered. |
Stop consuming data from a producer, without disconnecting.
Returns | None |
Sends a 100 Continue response, used to signal to clients that further processing will be performed.
This is a quick and dirty way of responding to bad requests.
As described by HTTP standard we should be patient and accept the whole request from the client before sending a polite bad request response, even in the case when clients send tons of data.
Parameters | transport | Transport handling connection to the client. (type: interfaces.ITransport ) |