# ``twisted`.`web`.`server`.`Request``

class documentation

`class Request(Copyable, http.Request, components.Componentized): (source)`

Known subclasses: `twisted.web.distrib.Request`

Implements interfaces: `twisted.web.iweb.IRequest`

View In Hierarchy

An HTTP request.

Method | `__init__` |
Method | `childLink` | Return the text that links to a child of the requested resource.
Method | `finish` | Override `http.Request.finish` for possible encoding.
Method | `getRootURL` | Get a previously-remembered URL.
Method | `getSession` | Check if there is a session cookie, and if not, create it.
Method | `getStateToCopyFor` | Gather state to send when I am serialized for a particular perspective.
Method | `gotLength` | Called when HTTP channel got length of content in this request.
Method | `prePathURL` | At any time during resource traversal or resource rendering, returns an absolute URL to the most nested resource which has yet been reached.
Method | `process` | Process a request.
Method | `processingFailed` | Finish this request with an indication that processing failed and possibly display a traceback.
Method | `rememberRootURL` | Remember the currently-processed part of the URL for later recalling.
Method | `render` | Ask a resource to render itself.
Method | `sibLink` | Return the text that links to a sibling of the requested resource.
Method | `URLPath` |
Method | `view_addCookie` | Remote version of addCookie; same interface.
Method | `view_finish` | Remote version of finish; same interface.
Method | `view_registerProducer` | Remote version of registerProducer; same interface. (requires a remote producer.)
Method | `view_setETag` | Remote version of setETag; same interface.
Method | `view_setHeader` | Remote version of setHeader; same interface.
Method | `view_setLastModified` | Remote version of setLastModified; same interface.
Method | `view_setResponseCode` | Remote version of setResponseCode; same interface.
Method | `view_unregisterProducer` | Undocumented
Method | `view_write` | Remote version of write; same interface.
Method | `write` | Write data to the transport (if not responding to a HEAD request).
Class Variable | `__pychecker__` | Undocumented
Instance Variable | `appRootURL` | Undocumented
Instance Variable | `content` | A file-like object giving the request body. This may be a file on disk, an `io.BytesIO`, or some other type. The implementation is free to decide on a per-request basis.
Instance Variable | `defaultContentType` | A `bytes` giving the default Content-Type value to send in responses if no other value is set. `None` disables the default.
Instance Variable | `method` | A `bytes` giving the HTTP method that was used.
Instance Variable | `postpath` | The URL path segments which have not (yet) been processed during resource traversal, as a list of `bytes`.
Instance Variable | `prepath` | The URL path segments which have been processed during resource traversal, as a list of `bytes`.
Instance Variable | `site` | Undocumented
Property | `session` | No summary
Method | `_handleStar` | Handle receiving a request whose path is '*'.
Method | `_prePathURL` | Undocumented
Class Variable | `_log` | Undocumented
Instance Variable | `_encoder` | Undocumented
Instance Variable | `_inFakeHead` | Undocumented
Instance Variable | `_insecureSession` | The `Session` object representing state that will be transmitted over plain-text HTTP.
Instance Variable | `_secureSession` | The `Session` object representing the state that will be transmitted only over HTTPS.

Inherited from `Copyable`:

Method | `getStateToCopy` | Gather state to send when I am serialized for a peer.
Method | `getTypeToCopy` | Determine what type tag to send for me.
Method | `getTypeToCopyFor` | Determine what type tag to send for me.
Method | `jellyFor` | Assemble type tag and state to copy for this broker.

Inherited from `Serializable` (via `Copyable`):

Method | `processUniqueID` | Return an ID which uniquely represents this object for this process.

Inherited from `Jellyable` (via `Copyable`, `Serializable`):

Method | `getStateFor` | Undocumented

Inherited from `Request`:

Method | `__eq__` | Determines if two requests are the same object.
Method | `__hash__` | A `Request` is hashable so that it can be used as a mapping key.
Method | `__repr__` | Return a string description of the request including such information as the request method and request URI.
Method | `addCookie` | Set an outgoing HTTP cookie.
Method | `connectionLost` | There is no longer a connection for this request to respond over. Clean up anything which can't be useful anymore.
Method | `getAllHeaders` | Return dictionary mapping the names of all received headers to the last value received for each.
Method | `getClientAddress` | Return the address of the client who submitted this request.
Method | `getClientIP` | Return the IP address of the client who submitted this request.
Method | `getCookie` | Get a cookie that was sent from the network.
Method | `getHeader` | Get an HTTP request header.
Method | `getHost` | Get my originally requesting transport's host.
Method | `getPassword` | Return the HTTP password sent with this request, if any.
Method | `getRequestHostname` | Get the hostname that the HTTP client passed in to the request.
Method | `getUser` | Return the HTTP user sent with this request, if any.
Method | `handleContentChunk` | Write a chunk of data.
Method | `isSecure` | Return `True` if this request is using a secure transport.
Method | `loseConnection` | Pass the loseConnection through to the underlying channel.
Method | `noLongerQueued` | Notify the object that it is no longer queued.
Method | `notifyFinish` | Notify when the response to this request has finished.
Method | `parseCookies` | Parse cookie headers.
Method | `redirect` | Utility function that does a redirect.
Method | `registerProducer` | Register a producer.
Method | `requestReceived` | Called by channel when all data has been received.
Method | `setETag` | Set an `entity tag` for the outgoing response.
Method | `setHeader` | Set an HTTP response header. Overrides any previously set values for this header.
Method | `setHost` | Change the host and port the request thinks it's using.
Method | `setLastModified` | Set the `Last-Modified` time for the response to this request.
Method | `setResponseCode` | Set the HTTP response code.
Method | `unregisterProducer` | Unregister the producer.
Instance Variable | `args` | A mapping of decoded query argument names as `bytes` to corresponding query argument values as `list`s of `bytes`. For example, for a URI with `foo=bar&foo=baz&quux=spam` as its query part `args` will be `{b'foo': [b'bar', b'baz'], b'quux': [b'spam']}`.
Instance Variable | `channel` | Undocumented
Instance Variable | `chunked` | Undocumented
Instance Variable | `client` | Undocumented
Instance Variable | `clientproto` | Undocumented
Instance Variable | `code` | Undocumented
Instance Variable | `code_message` | Undocumented
Instance Variable | `cookies` | The cookies that will be sent in the response.
Instance Variable | `etag` | Undocumented
Instance Variable | `finished` | Undocumented
Instance Variable | `host` | Undocumented
Instance Variable | `lastModified` | Undocumented
Instance Variable | `notifications` | A `list` of `Deferred`s which are waiting for notification that the response to this request has been finished (successfully or with an error). Don't use this attribute directly, instead use the `Request.notifyFinish` method.
Instance Variable | `password` | Undocumented
Instance Variable | `path` | The encoded path of the request URI (not including query arguments), e.g. `b'/a/b%20/c'`.
Instance Variable | `producer` | Undocumented
Instance Variable | `queued` | Undocumented
Instance Variable | `received_cookies` | Undocumented
Instance Variable | `requestHeaders` | All received HTTP request headers.
Instance Variable | `responseHeaders` | All HTTP response headers to be sent.
Instance Variable | `sentLength` | Undocumented
Instance Variable | `startedWriting` | Undocumented
Instance Variable | `streamingProducer` | Undocumented
Instance Variable | `transport` | Undocumented
Instance Variable | `uri` | The full encoded URI which was requested (including query arguments), e.g. `b'/a/b%20/c?q=v'`.
Instance Variable | `user` | Undocumented
Method | `_authorize` | Undocumented
Method | `_cleanup` | Called when have finished responding and are no longer queued.
Instance Variable | `_disconnected` | A flag which is `False` until the connection over which this request was received is closed and which is `True` after that.
Instance Variable | `_forceSSL` | Undocumented

Inherited from `Componentized`:

Method | `__conform__` | Undocumented
Method | `addAdapter` | Utility method that calls addComponent. I take an adapter class and instantiate it with myself as the first argument.
Method | `addComponent` | Add a component to me, for all appropriate interfaces.
Method | `getComponent` | Create or retrieve an adapter for the given interface.
Method | `locateAdapterClass` | Undocumented
Method | `removeComponent` | Remove the given component from me entirely, for all interfaces for which it has been registered.
Method | `setAdapter` | Cache a provider for the given interface, by adapting `self` using the given adapter class.
Method | `setComponent` | Cache a provider of the given interface.
Method | `unsetComponent` | Remove my component specified by the given interface class.
Class Variable | `persistenceVersion` | Undocumented
Instance Variable | `_adapterCache` | Undocumented

def __init__(self, *args, **kw): (source)
overrides `twisted.web.http.Request.__init__`

Parameters
*args | Undocumented
**kw | Undocumented
channel | the channel we're connected to.
queued | (deprecated) are we in the request queue, or can we start writing to the transport?

def childLink(self, name): (source)
Return the text that links to a child of the requested resource.

Parameters
name:`bytes` | The child resource
Returns
`bytes` | A relative URL.

def finish(self): (source)
from `twisted.web.iweb.IRequest`
overrides `twisted.web.http.Request.finish`
Override `http.Request.finish` for possible encoding.
def getRootURL(self): (source)
from `twisted.web.iweb.IRequest`
Get a previously-remembered URL.

Returns
`bytes` | An absolute URL.

def getSession(self, sessionInterface=None, forceNotSecure=False): (source)
from `twisted.web.iweb.IRequest`

Check if there is a session cookie, and if not, create it.

By default, the cookie with be secure for HTTPS requests and not secure for HTTP requests. If for some reason you need access to the insecure cookie from a secure request you can set `forceNotSecure = True`.

Parameters
sessionInterface | Undocumented
forceNotSecure:`bool` | Should we retrieve a session that will be transmitted over HTTP, even if this `Request` was delivered over HTTPS?

def getStateToCopyFor(self, issuer): (source)
overrides `twisted.spread.pb.Copyable.getStateToCopyFor`

Gather state to send when I am serialized for a particular perspective.

I will default to calling `getStateToCopy`. Override this to customize this behavior.

def gotLength(self, length): (source)
from `twisted.web.http._IDeprecatedHTTPChannelToRequestInterface`
overrides `twisted.web.http.Request.gotLength`

Called when HTTP channel got length of content in this request.

This method is not intended for users.

Parameters
length | The length of the request body, as indicated by the request headers. `None` if the request headers do not indicate a length.

def prePathURL(self): (source)
from `twisted.web.iweb.IRequest`
At any time during resource traversal or resource rendering, returns an absolute URL to the most nested resource which has yet been reached.

Returns
`bytes` | An absolute URL.
See Also
{twisted.web.server.Request.prepath}

def process(self): (source)
overrides `twisted.web.http.Request.process`

Process a request.

Find the addressed resource in this request's `Site`, and call `self.render()` with it.

See Also
`Site.getResourceFor()`

def processingFailed(self, reason): (source)
Finish this request with an indication that processing failed and possibly display a traceback.

Parameters
reason:`twisted.python.failure.Failure` | Reason this request has failed.
Returns
`twisted.python.failure.Failure` | The reason passed to this method.

def rememberRootURL(self): (source)
from `twisted.web.iweb.IRequest`
Remember the currently-processed part of the URL for later recalling.
def render(self, resrc): (source)

Ask a resource to render itself.

If the resource does not support the requested method, generate a `NOT IMPLEMENTED` or `NOT ALLOWED` response.

Parameters
resrc:`twisted.web.resource.IResource` | The resource to render.
See Also
`IResource.render()`

def sibLink(self, name): (source)
Return the text that links to a sibling of the requested resource.

Parameters
name:`bytes` | The sibling resource
Returns
`bytes` | A relative URL.

def URLPath(self): (source)
from `twisted.web.iweb.IRequest`

Returns
A `URLPath` instance which identifies the URL for which this request is.

def view_addCookie(self, issuer, k, v, **kwargs): (source)
Remote version of addCookie; same interface.
def view_finish(self, issuer): (source)
Remote version of finish; same interface.
def view_registerProducer(self, issuer, producer, streaming): (source)
Remote version of registerProducer; same interface. (requires a remote producer.)
def view_setETag(self, issuer, tag): (source)
Remote version of setETag; same interface.
def view_setHeader(self, issuer, k, v): (source)
Remote version of setHeader; same interface.
def view_setLastModified(self, issuer, when): (source)
Remote version of setLastModified; same interface.
def view_setResponseCode(self, issuer, code, message=None): (source)
Remote version of setResponseCode; same interface.
def view_unregisterProducer(self, issuer): (source)

Undocumented

def view_write(self, issuer, data): (source)
Remote version of write; same interface.
def write(self, data): (source)
from `twisted.web.iweb.IRequest`
overrides `twisted.web.http.Request.write`
overridden in `twisted.web.distrib.Request`
Write data to the transport (if not responding to a HEAD request).

Parameters
data:`bytes` | A string to write to the response.

__pychecker__: `str` = (source)

Undocumented

appRootURL = (source)

Undocumented

content = (source)
from `twisted.web.iweb.IRequest`
overrides `twisted.web.http.Request.content`
overridden in `twisted.web.distrib.Request`
A file-like object giving the request body. This may be a file on disk, an `io.BytesIO`, or some other type. The implementation is free to decide on a per-request basis.
defaultContentType: `bytes` = (source)
A `bytes` giving the default Content-Type value to send in responses if no other value is set. `None` disables the default.
method: `bytes` = (source)
from `twisted.web.iweb.IRequest`
overrides `twisted.web.http.Request.method`
A `bytes` giving the HTTP method that was used.
postpath = (source)
from `twisted.web.iweb.IRequest`
The URL path segments which have not (yet) been processed during resource traversal, as a list of `bytes`.
prepath: `list` = (source)
from `twisted.web.iweb.IRequest`
The URL path segments which have been processed during resource traversal, as a list of `bytes`.
site = (source)

Undocumented

@property
session: `Session` or `None` = (source)
If a session has already been created or looked up with `Request.getSession`, this will return that object. (This will always be the session that matches the security of the request; so if `forceNotSecure` is used on a secure request, this will not return that session.)
def _handleStar(self): (source)

Handle receiving a request whose path is '*'.

RFC 7231 defines an OPTIONS * request as being something that a client can send as a low-effort way to probe server capabilities or readiness. Rather than bother the user with this, we simply fast-path it back to an empty 200 OK. Any non-OPTIONS verb gets a 405 Method Not Allowed telling the client they can only use OPTIONS.

def _prePathURL(self, prepath): (source)

Undocumented

_log = (source)
overrides `twisted.web.http.Request._log`

Undocumented

_encoder = (source)

Undocumented

_inFakeHead: `bool` = (source)

Undocumented

_insecureSession = (source)
The `Session` object representing state that will be transmitted over plain-text HTTP.
_secureSession = (source)
The `Session` object representing the state that will be transmitted only over HTTPS.