class documentation

class HTTPParser(LineReceiver): (source)

Known subclasses: twisted.web._newclient.HTTPClientParser

View In Hierarchy

HTTPParser handles the parsing side of HTTP processing. With a suitable subclass, it can parse either the client side or the server side of the connection.
Method all​Headers​Received Callback invoked after the last header is passed to headerReceived. Override this to change to the BODY or DONE state.
Method connection​Made Called when a connection is made.
Method header​Received Store the given header in self.headers.
Method is​Connection​Control​Header Return True if the given lower-cased name is the name of a connection control header (rather than an entity header).
Method line​Received Handle one line from a response.
Method raw​Data​Received Pass data from the message body to the body decoder object.
Method status​Received Callback invoked whenever the first line of a new message is received. Override this.
Method switch​To​Body​Mode Switch to body parsing mode - interpret any more bytes delivered as part of the message body and deliver them to the given decoder.
Constant CONNECTION​_CONTROL​_HEADERS Undocumented
Class Variable delimiter Undocumented
Instance Variable body​Decoder Undocumented
Instance Variable conn​Headers Undocumented
Instance Variable headers All of the non-connection control message headers yet received.
Instance Variable state State indicator for the response parsing state machine. One of STATUS, HEADER, BODY, DONE.
Instance Variable _partial​Header None or a list of the lines of a multiline header while that header is being received.

Inherited from LineReceiver:

Method clear​Line​Buffer Clear buffered data.
Method data​Received Protocol.dataReceived. Translates bytes into lines, and calls lineReceived (or rawDataReceived, depending on mode.)
Method line​Length​Exceeded Called when the maximum line length has been reached. Override if it needs to be dealt with in some special way.
Method send​Line Sends a line to the other end of the connection.
Method set​Line​Mode Sets the line-mode of this receiver.
Method set​Raw​Mode Sets the raw mode of this receiver. Further data received will be sent to rawDataReceived rather than lineReceived.
Constant MAX​_LENGTH The maximum length of a line to allow (If a sent line is longer than this, the connection is dropped). Default is 16384.
Instance Variable line​_mode Undocumented
Instance Variable _buffer Undocumented
Instance Variable _busy​Receiving Undocumented

Inherited from Protocol (via LineReceiver):

Method connection​Lost Called when the connection is shut down.
Method log​Prefix Return a prefix matching the class name, to identify log messages related to this protocol instance.
Class Variable factory Undocumented

Inherited from BaseProtocol (via LineReceiver, Protocol):

Method make​Connection Make a connection to a transport and a server.
Instance Variable connected Undocumented
Instance Variable transport Undocumented

Inherited from _PauseableMixin (via LineReceiver):

Method pause​Producing Undocumented
Method resume​Producing Undocumented
Method stop​Producing Undocumented
Instance Variable paused Undocumented
def allHeadersReceived(self): (source)
Callback invoked after the last header is passed to headerReceived. Override this to change to the BODY or DONE state.
def connectionMade(self): (source)

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.

def headerReceived(self, name, value): (source)
Store the given header in self.headers.
def isConnectionControlHeader(self, name): (source)

Return True if the given lower-cased name is the name of a connection control header (rather than an entity header).

According to RFC 2616, section 14.10, the tokens in the Connection header are probably relevant here. However, I am not sure what the practical consequences of either implementing or ignoring that are. So I leave it unimplemented for the time being.

def lineReceived(self, line): (source)
Handle one line from a response.
def rawDataReceived(self, data): (source)
Pass data from the message body to the body decoder object.
def statusReceived(self, status): (source)
Callback invoked whenever the first line of a new message is received. Override this.
Parameters
status:bytesThe first line of an HTTP request or response message without trailing CR LF.
def switchToBodyMode(self, decoder): (source)
Switch to body parsing mode - interpret any more bytes delivered as part of the message body and deliver them to the given decoder.
CONNECTION_CONTROL_HEADERS: set[bytes] = (source)

Undocumented

Value
set([b'content-length',
     b'connection',
     b'keep-alive',
     b'te',
     b'trailers',
     b'transfer-encoding',
     b'upgrade',
...
bodyDecoder = (source)

Undocumented

connHeaders = (source)

Undocumented

headers = (source)
All of the non-connection control message headers yet received.
state = (source)
State indicator for the response parsing state machine. One of STATUS, HEADER, BODY, DONE.
_partialHeader = (source)
None or a list of the lines of a multiline header while that header is being received.