HyperText Transfer Protocol implementation.
This is the basic server-side protocol implementation used by the Twisted Web server. It can parse HTTP 1.0 requests and supports many HTTP 1.1 features as well. Additionally, some functionality implemented here is also useful for HTTP clients (such as the chunked encoding parser).
Class | HTTPChannel |
A receiver for HTTP requests. |
Class | HTTPClient |
A client for HTTP 1.0. |
Class | HTTPFactory |
Factory for HTTP server. |
Class | PotentialDataLoss |
No summary |
Class | Request |
A HTTP request. |
Class | StringTransport |
I am a BytesIO wrapper that conforms for the transport API. I support the `writeSequence' method. |
Function | combinedLogFormatter |
|
Function | datetimeToLogString |
Convert seconds since epoch to log datetime string. |
Function | datetimeToString |
Convert seconds since epoch to HTTP datetime string. |
Function | fromChunk |
Convert chunk to string. |
Function | parse_qs |
Like cgi.parse_qs, but with support for parsing byte strings on Python 3. |
Function | parseContentRange |
Parse a content-range header into (start, end, realLength). |
Function | proxiedLogFormatter |
|
Function | stringToDatetime |
Convert an HTTP date string (one of three formats) to seconds since epoch. |
Function | timegm |
Convert time tuple in GMT to seconds since epoch, GMT |
Function | toChunk |
Convert string to a chunk. |
Function | urlparse |
Parse an URL into six components. |
Variable | ACCEPTED |
Undocumented |
Variable | BAD_GATEWAY |
Undocumented |
Variable | BAD_REQUEST |
Undocumented |
Variable | CACHED |
A marker value to be returned from cache-related request methods to indicate to the caller that a cached response will be usable and no response body should be generated. |
Variable | CONFLICT |
Undocumented |
Variable | CREATED |
Undocumented |
Variable | EXPECTATION_FAILED |
Undocumented |
Variable | FORBIDDEN |
Undocumented |
Variable | FOUND |
Undocumented |
Variable | GATEWAY_TIMEOUT |
Undocumented |
Variable | GONE |
Undocumented |
Variable | H2_ENABLED |
Undocumented |
Variable | HTTP_VERSION_NOT_SUPPORTED |
Undocumented |
Variable | INSUFFICIENT_STORAGE_SPACE |
Undocumented |
Variable | INTERNAL_SERVER_ERROR |
Undocumented |
Variable | LENGTH_REQUIRED |
Undocumented |
Variable | maxChunkSizeLineLength |
Maximum allowable length of the CRLF-terminated line that indicates the size of a chunk and the extensions associated with it, as in the HTTP 1.1 chunked Transfer-Encoding (RFC 7230 section 4.1). This limits how much data may be buffered when decoding the line. |
Variable | monthname |
Undocumented |
Variable | monthname_lower |
Undocumented |
Variable | MOVED_PERMANENTLY |
Undocumented |
Variable | MULTI_STATUS |
Undocumented |
Variable | MULTIPLE_CHOICE |
Undocumented |
Variable | NO_BODY_CODES |
Undocumented |
Variable | NO_CONTENT |
Undocumented |
Variable | NON_AUTHORITATIVE_INFORMATION |
Undocumented |
Variable | NOT_ACCEPTABLE |
Undocumented |
Variable | NOT_ALLOWED |
Undocumented |
Variable | NOT_EXTENDED |
Undocumented |
Variable | NOT_FOUND |
Undocumented |
Variable | NOT_IMPLEMENTED |
Undocumented |
Variable | NOT_MODIFIED |
Undocumented |
Variable | OK |
Undocumented |
Variable | PARTIAL_CONTENT |
Undocumented |
Variable | PAYMENT_REQUIRED |
Undocumented |
Variable | PERMANENT_REDIRECT |
Undocumented |
Variable | PRECONDITION_FAILED |
Undocumented |
Variable | protocol_version |
Undocumented |
Variable | PROXY_AUTH_REQUIRED |
Undocumented |
Variable | REQUEST_ENTITY_TOO_LARGE |
Undocumented |
Variable | REQUEST_TIMEOUT |
Undocumented |
Variable | REQUEST_URI_TOO_LONG |
Undocumented |
Variable | REQUESTED_RANGE_NOT_SATISFIABLE |
Undocumented |
Variable | RESET_CONTENT |
Undocumented |
Variable | RESPONSES |
Undocumented |
Variable | SEE_OTHER |
Undocumented |
Variable | SERVICE_UNAVAILABLE |
Undocumented |
Variable | SWITCHING |
Undocumented |
Variable | TEMPORARY_REDIRECT |
Undocumented |
Variable | UNAUTHORIZED |
Undocumented |
Variable | UNSUPPORTED_MEDIA_TYPE |
Undocumented |
Variable | USE_PROXY |
Undocumented |
Variable | weekdayname |
Undocumented |
Variable | weekdayname_lower |
Undocumented |
Interface | _IDeprecatedHTTPChannelToRequestInterface |
The interface HTTPChannel expects of Request . |
Class | _ChunkedTransferDecoder |
No summary |
Class | _DataLoss |
No summary |
Class | _GenericHTTPChannelProtocol |
A proxy object that wraps one of the HTTP protocol objects, and switches between them depending on TLS negotiated protocol. |
Class | _IdentityTransferDecoder |
Protocol for accumulating bytes up to a specified length. This handles the case where no Transfer-Encoding is specified. |
Class | _MalformedChunkedDataError |
No summary |
Class | _NoPushProducer |
A no-op version of interfaces.IPushProducer , used to abstract over the possibility that a HTTPChannel transport does not provide IPushProducer . |
Class | _XForwardedForAddress |
IAddress which represents the client IP to log for a request, as gleaned from an X-Forwarded-For header. |
Class | _XForwardedForRequest |
Add a layer on top of another request that only uses the value of an X-Forwarded-For header as the result of getClientAddress. |
Function | _escape |
Return a string like python repr, but always escaped as if surrounding quotes were double quotes. |
Function | _genericHTTPChannelProtocolFactory |
Returns an appropriately initialized _GenericHTTPChannelProtocol. |
Function | _getContentFile |
Get a writeable file-like object to which request content can be written. |
Function | _hexint |
Decode a hexadecimal integer. |
Function | _ishexdigits |
Is the string case-insensitively hexidecimal? |
Function | _parseHeader |
Undocumented |
Variable | _chunkExtChars |
Characters that are valid in a chunk extension. |
Variable | _hostHeaderExpression |
Undocumented |
Variable | _QUEUED_SENTINEL |
Undocumented |
Variable | _REQUEST_TIMEOUT |
Undocumented |
Convert chunk to string.
Note that this function is not specification compliant: it doesn't handle chunk extensions.
Parameters | |
data:bytes | Undocumented |
Returns | |
Tuple[ | tuple of (result, remaining) - both bytes. |
Raises | |
ValueError | If the given data is not a correctly formatted chunked byte string. |
Parameters | |
qs:bytes | Undocumented |
keep_blank_values | Undocumented |
strict_parsing | Undocumented |
Parse a content-range header into (start, end, realLength).
realLength might be None if real length is not known ('*').
Returns | |
A combined log formatted log line for the given request but use the value of the X-Forwarded-For header as the value for the client IP address. | |
See Also | |
IAccessLogFormatter |
Parameters | |
dateString:bytes | Undocumented |
Parameters | |
data:bytes | Undocumented |
Returns | |
a tuple of bytes representing the chunked encoding of data |
Parse an URL into six components.
This is similar to urlparse.urlparse, but rejects str input and always produces bytes output.
Parameters | |
url:bytes | Undocumented |
Returns | |
ParseResultBytes | The scheme, net location, path, params, query string, and fragment of the URL - all as bytes. |
Raises | |
TypeError | The given url was a str string instead of a bytes. |
Decode a hexadecimal integer.
Unlike int(b, 16)
, this raises ValueError
when the integer has a prefix like b'0x', b'+', or b'-', which is desirable when parsing network protocols.
Parameters | |
b:bytes | Undocumented |
Returns | |
int | Undocumented |
Characters that are valid in a chunk extension.
See RFC 7230 section 4.1.1:
chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-val ] ) chunk-ext-name = token chunk-ext-val = token / quoted-string
And section 3.2.6:
token = 1*tchar tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA ; any VCHAR, except delimiters quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE qdtext = HTAB / SP /%x21 / %x23-5B / %x5D-7E / obs-text obs-text = %x80-FF
We don't check if chunk extensions are well-formed beyond validating that they don't contain characters outside this range.