21.11.http — HTTP modules¶
Source code:Lib/http/__init__.py
http is a package that collects several modules for working with theHyperText Transfer Protocol:
http.clientis a low-level HTTP protocol client; for high-level URLopening useurllib.requesthttp.servercontains basic HTTP server classes based onsocketserverhttp.cookieshas utilities for implementing state management with cookieshttp.cookiejarprovides persistence of cookies
http is also a module that defines a number of HTTP status codes andassociated messages through thehttp.HTTPStatus enum:
- class
http.HTTPStatus¶ New in version 3.5.
A subclass of
enum.IntEnumthat defines a set of HTTP status codes,reason phrases and long descriptions written in English.Usage:
>>>fromhttpimportHTTPStatus>>>HTTPStatus.OK<HTTPStatus.OK: 200>>>>HTTPStatus.OK==200True>>>http.HTTPStatus.OK.value200>>>HTTPStatus.OK.phrase'OK'>>>HTTPStatus.OK.description'Request fulfilled, document follows'>>>list(HTTPStatus)[<HTTPStatus.CONTINUE: 100>, <HTTPStatus.SWITCHING_PROTOCOLS: 101>, ...]
21.11.1. HTTP status codes¶
Supported,IANA-registeredstatus codes available inhttp.HTTPStatus are:
| Code | Enum Name | Details |
|---|---|---|
100 | CONTINUE | HTTP/1.1RFC 7231, Section 6.2.1 |
101 | SWITCHING_PROTOCOLS | HTTP/1.1RFC 7231, Section 6.2.2 |
102 | PROCESSING | WebDAVRFC 2518, Section 10.1 |
200 | OK | HTTP/1.1RFC 7231, Section 6.3.1 |
201 | CREATED | HTTP/1.1RFC 7231, Section 6.3.2 |
202 | ACCEPTED | HTTP/1.1RFC 7231, Section 6.3.3 |
203 | NON_AUTHORITATIVE_INFORMATION | HTTP/1.1RFC 7231, Section 6.3.4 |
204 | NO_CONTENT | HTTP/1.1RFC 7231, Section 6.3.5 |
205 | RESET_CONTENT | HTTP/1.1RFC 7231, Section 6.3.6 |
206 | PARTIAL_CONTENT | HTTP/1.1RFC 7233, Section 4.1 |
207 | MULTI_STATUS | WebDAVRFC 4918, Section 11.1 |
208 | ALREADY_REPORTED | WebDAV Binding ExtensionsRFC 5842, Section 7.1 (Experimental) |
226 | IM_USED | Delta Encoding in HTTPRFC 3229, Section 10.4.1 |
300 | MULTIPLE_CHOICES | HTTP/1.1RFC 7231, Section 6.4.1 |
301 | MOVED_PERMANENTLY | HTTP/1.1RFC 7231, Section 6.4.2 |
302 | FOUND | HTTP/1.1RFC 7231, Section 6.4.3 |
303 | SEE_OTHER | HTTP/1.1RFC 7231, Section 6.4.4 |
304 | NOT_MODIFIED | HTTP/1.1RFC 7232, Section 4.1 |
305 | USE_PROXY | HTTP/1.1RFC 7231, Section 6.4.5 |
307 | TEMPORARY_REDIRECT | HTTP/1.1RFC 7231, Section 6.4.7 |
308 | PERMANENT_REDIRECT | Permanent RedirectRFC 7238, Section 3 (Experimental) |
400 | BAD_REQUEST | HTTP/1.1RFC 7231, Section 6.5.1 |
401 | UNAUTHORIZED | HTTP/1.1 AuthenticationRFC 7235, Section 3.1 |
402 | PAYMENT_REQUIRED | HTTP/1.1RFC 7231, Section 6.5.2 |
403 | FORBIDDEN | HTTP/1.1RFC 7231, Section 6.5.3 |
404 | NOT_FOUND | HTTP/1.1RFC 7231, Section 6.5.4 |
405 | METHOD_NOT_ALLOWED | HTTP/1.1RFC 7231, Section 6.5.5 |
406 | NOT_ACCEPTABLE | HTTP/1.1RFC 7231, Section 6.5.6 |
407 | PROXY_AUTHENTICATION_REQUIRED | HTTP/1.1 AuthenticationRFC 7235, Section 3.2 |
408 | REQUEST_TIMEOUT | HTTP/1.1RFC 7231, Section 6.5.7 |
409 | CONFLICT | HTTP/1.1RFC 7231, Section 6.5.8 |
410 | GONE | HTTP/1.1RFC 7231, Section 6.5.9 |
411 | LENGTH_REQUIRED | HTTP/1.1RFC 7231, Section 6.5.10 |
412 | PRECONDITION_FAILED | HTTP/1.1RFC 7232, Section 4.2 |
413 | REQUEST_ENTITY_TOO_LARGE | HTTP/1.1RFC 7231, Section 6.5.11 |
414 | REQUEST_URI_TOO_LONG | HTTP/1.1RFC 7231, Section 6.5.12 |
415 | UNSUPPORTED_MEDIA_TYPE | HTTP/1.1RFC 7231, Section 6.5.13 |
416 | REQUEST_RANGE_NOT_SATISFIABLE | HTTP/1.1 Range RequestsRFC 7233, Section 4.4 |
417 | EXPECTATION_FAILED | HTTP/1.1RFC 7231, Section 6.5.14 |
422 | UNPROCESSABLE_ENTITY | WebDAVRFC 4918, Section 11.2 |
423 | LOCKED | WebDAVRFC 4918, Section 11.3 |
424 | FAILED_DEPENDENCY | WebDAVRFC 4918, Section 11.4 |
426 | UPGRADE_REQUIRED | HTTP/1.1RFC 7231, Section 6.5.15 |
428 | PRECONDITION_REQUIRED | Additional HTTP Status CodesRFC 6585 |
429 | TOO_MANY_REQUESTS | Additional HTTP Status CodesRFC 6585 |
431 | REQUEST_HEADER_FIELDS_TOO_LARGE | Additional HTTP Status CodesRFC 6585 |
500 | INTERNAL_SERVER_ERROR | HTTP/1.1RFC 7231, Section 6.6.1 |
501 | NOT_IMPLEMENTED | HTTP/1.1RFC 7231, Section 6.6.2 |
502 | BAD_GATEWAY | HTTP/1.1RFC 7231, Section 6.6.3 |
503 | SERVICE_UNAVAILABLE | HTTP/1.1RFC 7231, Section 6.6.4 |
504 | GATEWAY_TIMEOUT | HTTP/1.1RFC 7231, Section 6.6.5 |
505 | HTTP_VERSION_NOT_SUPPORTED | HTTP/1.1RFC 7231, Section 6.6.6 |
506 | VARIANT_ALSO_NEGOTIATES | Transparent Content Negotiation in HTTPRFC 2295, Section 8.1 (Experimental) |
507 | INSUFFICIENT_STORAGE | WebDAVRFC 4918, Section 11.5 |
508 | LOOP_DETECTED | WebDAV Binding ExtensionsRFC 5842, Section 7.2 (Experimental) |
510 | NOT_EXTENDED | An HTTP Extension FrameworkRFC 2774, Section 7 (Experimental) |
511 | NETWORK_AUTHENTICATION_REQUIRED | Additional HTTP Status CodesRFC 6585, Section 6 |
In order to preserve backwards compatibility, enum values are also presentin thehttp.client module in the form of constants. The enum name isequal to the constant name (i.e.http.HTTPStatus.OK is also available ashttp.client.OK).
