Stores HTTP headers in a key and multiple value format.

Most methods accept bytes and unicode, with an internal bytes representation. When passed unicode, header names (e.g. 'Content-Type') are encoded using ISO-8859-1 and header values (e.g. 'text/html;charset=utf-8') are encoded using UTF-8. Some methods that return values will return them in the same type as the name given.

If the header keys or values cannot be encoded or decoded using the rules above, using just bytes arguments to the methods of this class will ensure no decoding or encoding is done, and Headers will treat the keys and values as opaque byte strings.

Method __init__ Undocumented
Method __repr__ Return a string fully describing the headers set on this object.
Method __cmp__ Define Headers instances as being equal to each other if they have the same raw headers.
Method copy Return a copy of itself with the same headers set.
Method hasHeader Check for the existence of a given header.
Method removeHeader Remove the named header from this header object.
Method setRawHeaders Sets the raw representation of the given header.
Method addRawHeader Add a new raw value for the given header.
Method getRawHeaders Returns a list of headers matching the given name as the raw string given.
Method getAllRawHeaders Return an iterator of key, value pairs of all headers contained in this object, as bytes. The keys are capitalized in canonical capitalization.
Class Variable _caseMappings A dict that maps lowercase header names to their canonicalized representation.
Instance Variable _rawHeaders A dict mapping header names as bytes to lists of header values as bytes.
Method _encodeName Encode the name of a header (eg 'Content-Type') to an ISO-8859-1 encoded bytestring if required.
Method _encodeValue Encode a single header value to a UTF-8 encoded bytestring if required.
Method _encodeValues Encode a list of header values to a list of UTF-8 encoded bytestrings if required.
Method _decodeValues Decode a list of header values into a list of Unicode strings.
Method _canonicalNameCaps Return the canonical name for the given header.
_caseMappings =
A dict that maps lowercase header names to their canonicalized representation.
_rawHeaders =
A dict mapping header names as bytes to lists of header values as bytes.
def __init__(self, rawHeaders=None):
Undocumented
def __repr__(self):

Return a string fully describing the headers set on this object.

def __cmp__(self, other):

Define Headers instances as being equal to each other if they have the same raw headers.

def _encodeName(self, name):

Encode the name of a header (eg 'Content-Type') to an ISO-8859-1 encoded bytestring if required.

ParametersnameA HTTP header name (type: unicode or bytes)
Returnsname, encoded if required, lowercased (type: bytes)
def _encodeValue(self, value):

Encode a single header value to a UTF-8 encoded bytestring if required.

ParametersvalueA single HTTP header value. (type: bytes or unicode)
Returnsvalue, encoded if required (type: bytes)
def _encodeValues(self, values):

Encode a list of header values to a list of UTF-8 encoded bytestrings if required.

ParametersvaluesA list of HTTP header values. (type: list of bytes or unicode (mixed types allowed))
Returnsvalues, with each item encoded if required (type: list of bytes)
def _decodeValues(self, values):

Decode a list of header values into a list of Unicode strings.

ParametersvaluesA list of HTTP header values. (type: list of UTF-8 encoded bytes)
Returnsvalues, with each item decoded (type: list of unicode)
def copy(self):

Return a copy of itself with the same headers set.

ReturnsA new Headers
def hasHeader(self, name):

Check for the existence of a given header.

ParametersnameThe name of the HTTP header to check for. (type: bytes or unicode)
ReturnsTrue if the header exists, otherwise False. (type: bool)
def removeHeader(self, name):

Remove the named header from this header object.

ParametersnameThe name of the HTTP header to remove. (type: bytes or unicode)
ReturnsNone
def setRawHeaders(self, name, values):

Sets the raw representation of the given header.

ParametersnameThe name of the HTTP header to set the values for. (type: bytes or unicode)
valuesA list of strings each one being a header value of the given name. (type: list of bytes or unicode strings)
ReturnsNone
def addRawHeader(self, name, value):

Add a new raw value for the given header.

ParametersnameThe name of the header for which to set the value. (type: bytes or unicode)
valueThe value to set for the named header. (type: bytes or unicode)
def getRawHeaders(self, name, default=None):

Returns a list of headers matching the given name as the raw string given.

ParametersnameThe name of the HTTP header to get the values of. (type: bytes or unicode)
defaultThe value to return if no header with the given name exists.
ReturnsIf the named header is present, a list of its values. Otherwise, default. (type: list of strings, same type as name (except when default is returned).)
def getAllRawHeaders(self):

Return an iterator of key, value pairs of all headers contained in this object, as bytes. The keys are capitalized in canonical capitalization.

def _canonicalNameCaps(self, name):

Return the canonical name for the given header.

ParametersnameThe all-lowercase header name to capitalize in its canonical form. (type: bytes)
ReturnsThe canonical name of the header. (type: bytes)
API Documentation for twisted, generated by pydoctor at 2020-03-25 17:34:30.