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>>>HTTPStatus.OK.value200>>>HTTPStatus.OK.phrase'OK'>>>HTTPStatus.OK.description'Request fulfilled, document follows'>>>list(HTTPStatus)[<HTTPStatus.CONTINUE: 100>, <HTTPStatus.SWITCHING_PROTOCOLS: 101>, ...]

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

REQUESTED_RANGE_NOT_SATISFIABLE

HTTP/1.1 Range RequestsRFC 7233, Section 4.4

417

EXPECTATION_FAILED

HTTP/1.1RFC 7231, Section 6.5.14

421

MISDIRECTED_REQUEST

HTTP/2RFC 7540, Section 9.1.2

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

451

UNAVAILABLE_FOR_LEGAL_REASONS

An HTTP Status Code to Report Legal ObstaclesRFC 7725

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).

Changed in version 3.7:Added421MISDIRECTED_REQUEST status code.

New in version 3.8:Added451UNAVAILABLE_FOR_LEGAL_REASONS status code.