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 is also a module that defines a number of HTTP status codes andassociated messages through thehttp.HTTPStatus enum:

classhttp.HTTPStatus

New in version 3.5.

A subclass ofenum.IntEnum that 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).