Go to the latest version of this document.
search in docstrings

Search bar offers the following options:

- Term presence. The below example searches for documents that must contain “foo”, might contain “bar” and must not contain “baz”: `+foo bar -baz`
- Wildcards. The below example searches for documents with words beginning with “foo”: `foo*`
- Search in specific fields. The following search matches all objects in "twisted.mail" that matches “search”: `+qname:twisted.mail.* +search`

  Possible fields: 'name', 'qname' (fully qualified name), 'docstring', and 'kind'. Last two fields are only applicable if "search in docstrings" is enabled.

- Fuzzy matches. The following search matches all documents that have a word within 1 edit distance of “foo”: `foo~1`

Results provided by Lunr.js

# ``twisted`.`web`.`proxy`.`Proxy``

class documentation

`class Proxy(HTTPChannel): (source)`

View In Hierarchy

This class implements a simple web proxy.

Since it inherits from `twisted.web.http.HTTPChannel`, to use it you should do something like this:

        from twisted.web import http
        f = http.HTTPFactory()
        f.protocol = Proxy

Make the HTTPFactory a listener on a port as per usual, and you have a fully-functioning web proxy!

Inherited from `HTTPChannel`:

Method | `__init__` | Undocumented
Method | `allContentReceived` | Undocumented
Method | `allHeadersReceived` | Undocumented
Method | `checkPersistence` | Check if the channel should close or not.
Method | `connectionLost` | Called when the connection is shut down.
Method | `connectionMade` | Called when a connection is made.
Method | `forceAbortClient` | Called if `abortTimeout` seconds have passed since the timeout fired, and the connection still hasn't gone away. This can really only happen on extremely bad connections or when clients are maliciously attempting to keep connections open.
Method | `getHost` | Get the local address of this connection.
Method | `getPeer` | Get the remote address of this connection.
Method | `headerReceived` | Do pre-processing (for content-length) and store this header away. Enforce the per-request header limit.
Method | `isSecure` | Return `True` if this channel is using a secure transport.
Method | `lineReceived` | Called for each line from request until the end of headers when it enters binary mode.
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 | `pauseProducing` | Pause producing data.
Method | `rawDataReceived` | This is called when this HTTP/1.1 parser is in raw mode rather than line mode.
Method | `registerProducer` | Register to receive data from a producer.
Method | `requestDone` | Called by first request in queue when it is done.
Method | `resumeProducing` | Resume producing data.
Method | `stopProducing` | Stop producing data.
Method | `timeoutConnection` | Called when the connection times out.
Method | `unregisterProducer` | Stop consuming data from a producer, without disconnecting.
Method | `write` | Called by `Request` objects to write response data.
Method | `writeHeaders` | Called by `Request` objects to write a complete set of HTTP headers to a transport.
Method | `writeSequence` | Write a list of strings to the HTTP response.
Instance Variable | `abortTimeout` | The number of seconds to wait after we attempt to shut the transport down cleanly to give up and forcibly terminate it. This is only used when we time a connection out, to prevent errors causing the FD to get leaked...
Instance Variable | `length` | Undocumented
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.
Instance Variable | `persistent` | Undocumented
Instance Variable | `requests` | Undocumented
Instance Variable | `totalHeadersSize` | Maximum bytes for request line plus all headers from the request.
Method | `_finishRequestBody` | Undocumented
Method | `_maybeChooseTransferDecoder` | If the provided header is `content-length` or `transfer-encoding`, choose the appropriate decoder if any.
Method | `_respondToBadRequestAndDisconnect` | This is a quick and dirty way of responding to bad requests.
Method | `_send100Continue` | Sends a 100 Continue response, used to signal to clients that further processing will be performed.
Class Variable | `__content` | Undocumented
Class Variable | `__header` | Undocumented
Class Variable | `_log` | Undocumented
Instance Variable | `__first_line` | Undocumented
Instance Variable | `_abortingCall` | The `twisted.internet.base.DelayedCall` that will be used to forcibly close the transport if it doesn't close cleanly.
Instance Variable | `_command` | Undocumented
Instance Variable | `_dataBuffer` | Any data that has been received from the connection while processing an outstanding request.
Instance Variable | `_handlingRequest` | Whether a request is currently being processed.
Instance Variable | `_networkProducer` | 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.
Instance Variable | `_optimisticEagerReadSize` | When a resource takes a long time to answer a request (via `twisted.web.server.NOT_DONE_YET`, hopefully one day by a `Deferred`), we would like to be able to let that resource know about the underlying transport disappearing as promptly as possible, via ...
Instance Variable | `_path` | Undocumented
Instance Variable | `_receivedHeaderCount` | Undocumented
Instance Variable | `_receivedHeaderSize` | Bytes received so far for the header.
Instance Variable | `_requestProducer` | If the `Request` object or anything it calls registers itself as an `interfaces.IProducer`, it will be stored here. This is used to create a producing pipeline: pause/resume producing methods will be propagated from the ...
Instance Variable | `_requestProducerStreaming` | A boolean that tracks whether the producer on the `Request` side of this channel has registered itself as a `interfaces.IPushProducer` or an `interfaces.IPullProducer`.
Instance Variable | `_savedTimeOut` | Undocumented
Instance Variable | `_transferDecoder` | `None` or a decoder instance if the request body uses the chunked Transfer-Encoding.
Instance Variable | `_version` | Undocumented
Instance Variable | `_waitingForTransport` | A boolean that tracks whether the transport has asked us to stop producing. This is used to keep track of what we're waiting for: if the transport has asked us to stop producing then we don't want to unpause the transport until it asks us to produce again.

Inherited from `LineReceiver` (via `HTTPChannel`):

Method | `clearLineBuffer` | Clear buffered data.
Method | `dataReceived` | Protocol.dataReceived. Translates bytes into lines, and calls lineReceived (or rawDataReceived, depending on mode.)
Method | `lineLengthExceeded` | Called when the maximum line length has been reached. Override if it needs to be dealt with in some special way.
Method | `sendLine` | Sends a line to the other end of the connection.
Method | `setLineMode` | Sets the line-mode of this receiver.
Method | `setRawMode` | Sets the raw mode of this receiver. Further data received will be sent to rawDataReceived rather than lineReceived.
Class Variable | `delimiter` | The line-ending delimiter to use. By default this is `b'\r\n'`.
Instance Variable | `line_mode` | Undocumented
Instance Variable | `_buffer` | Undocumented
Instance Variable | `_busyReceiving` | Undocumented

Inherited from `Protocol` (via `HTTPChannel`, `LineReceiver`):

Method | `logPrefix` | Return a prefix matching the class name, to identify log messages related to this protocol instance.
Class Variable | `factory` | Undocumented

Inherited from `BaseProtocol` (via `HTTPChannel`, `LineReceiver`, `Protocol`):

Method | `makeConnection` | Make a connection to a transport and a server.
Instance Variable | `connected` | Undocumented
Instance Variable | `transport` | Undocumented

Inherited from `_PauseableMixin` (via `HTTPChannel`, `LineReceiver`, `Protocol`, `BaseProtocol`):

Instance Variable | `paused` | Undocumented

Inherited from `TimeoutMixin` (via `HTTPChannel`, `LineReceiver`, `Protocol`, `BaseProtocol`, `_PauseableMixin`):

Method | `callLater` | Wrapper around `reactor.callLater` for test purpose.
Method | `resetTimeout` | Reset the timeout count down.
Method | `setTimeout` | Change the timeout period
Instance Variable | `timeOut` | The number of seconds after which to timeout the connection.
Method | `__timedOut` | Undocumented
Instance Variable | `__timeoutCall` | Undocumented