http — HTTP-Module

Quellcode: Lib/http/__init__.py


http ist ein Paket, das mehrere Module zur Arbeit mit dem HyperText Transfer Protocol (HTTP) zusammenfasst.

Das Modul http definiert auch die folgenden Enums, die Ihnen bei der Arbeit mit HTTP-bezogenem Code helfen:

class http.HTTPStatus

Hinzugefügt in Version 3.5.

Eine Unterklasse von enum.IntEnum, die eine Reihe von HTTP-Statuscodes, Grundphrasen und langen Beschreibungen in englischer Sprache definiert.

Verwendung

>>> from http import HTTPStatus
>>> HTTPStatus.OK
HTTPStatus.OK
>>> HTTPStatus.OK == 200
True
>>> HTTPStatus.OK.value
200
>>> HTTPStatus.OK.phrase
'OK'
>>> HTTPStatus.OK.description
'Request fulfilled, document follows'
>>> list(HTTPStatus)
[HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]

HTTP-Statuscodes

Unterstützte, IANA-registrierte Statuscodes, die in http.HTTPStatus verfügbar sind, sind:

Code

Enum-Name

Details

100

CONTINUE

HTTP Semantics RFC 9110, Abschnitt 15.2.1

101

SWITCHING_PROTOCOLS

HTTP Semantics RFC 9110, Abschnitt 15.2.2

102

PROCESSING

WebDAV RFC 2518, Abschnitt 10.1

103

EARLY_HINTS

An HTTP Status Code for Indicating Hints RFC 8297

200

OK

HTTP Semantics RFC 9110, Abschnitt 15.3.1

201

CREATED

HTTP Semantics RFC 9110, Abschnitt 15.3.2

202

ACCEPTED

HTTP Semantics RFC 9110, Abschnitt 15.3.3

203

NON_AUTHORITATIVE_INFORMATION

HTTP Semantics RFC 9110, Abschnitt 15.3.4

204

NO_CONTENT

HTTP Semantics RFC 9110, Abschnitt 15.3.5

205

RESET_CONTENT

HTTP Semantics RFC 9110, Abschnitt 15.3.6

206

PARTIAL_CONTENT

HTTP Semantics RFC 9110, Abschnitt 15.3.7

207

MULTI_STATUS

WebDAV RFC 4918, Abschnitt 11.1

208

ALREADY_REPORTED

WebDAV Binding Extensions RFC 5842, Abschnitt 7.1 (Experimental)

226

IM_USED

Delta Encoding in HTTP RFC 3229, Abschnitt 10.4.1

300

MULTIPLE_CHOICES

HTTP Semantics RFC 9110, Abschnitt 15.4.1

301

MOVED_PERMANENTLY

HTTP Semantics RFC 9110, Abschnitt 15.4.2

302

FOUND

HTTP Semantics RFC 9110, Abschnitt 15.4.3

303

SEE_OTHER

HTTP Semantics RFC 9110, Abschnitt 15.4.4

304

NOT_MODIFIED

HTTP Semantics RFC 9110, Abschnitt 15.4.5

305

USE_PROXY

HTTP Semantics RFC 9110, Abschnitt 15.4.6

307

TEMPORARY_REDIRECT

HTTP Semantics RFC 9110, Abschnitt 15.4.8

308

PERMANENT_REDIRECT

HTTP Semantics RFC 9110, Abschnitt 15.4.9

400

BAD_REQUEST

HTTP Semantics RFC 9110, Abschnitt 15.5.1

401

UNAUTHORIZED

HTTP Semantics RFC 9110, Abschnitt 15.5.2

402

PAYMENT_REQUIRED

HTTP Semantics RFC 9110, Abschnitt 15.5.3

403

FORBIDDEN

HTTP Semantics RFC 9110, Abschnitt 15.5.4

404

NOT_FOUND

HTTP Semantics RFC 9110, Abschnitt 15.5.5

405

METHOD_NOT_ALLOWED

HTTP Semantics RFC 9110, Abschnitt 15.5.6

406

NOT_ACCEPTABLE

HTTP Semantics RFC 9110, Abschnitt 15.5.7

407

PROXY_AUTHENTICATION_REQUIRED

HTTP Semantics RFC 9110, Abschnitt 15.5.8

408

REQUEST_TIMEOUT

HTTP Semantics RFC 9110, Abschnitt 15.5.9

409

CONFLICT

HTTP Semantics RFC 9110, Abschnitt 15.5.10

410

GONE

HTTP Semantics RFC 9110, Abschnitt 15.5.11

411

LENGTH_REQUIRED

HTTP Semantics RFC 9110, Abschnitt 15.5.12

412

PRECONDITION_FAILED

HTTP Semantics RFC 9110, Abschnitt 15.5.13

413

CONTENT_TOO_LARGE

HTTP Semantics RFC 9110, Abschnitt 15.5.14

414

URI_TOO_LONG

HTTP Semantics RFC 9110, Abschnitt 15.5.15

415

UNSUPPORTED_MEDIA_TYPE

HTTP Semantics RFC 9110, Abschnitt 15.5.16

416

RANGE_NOT_SATISFIABLE

HTTP Semantics RFC 9110, Abschnitt 15.5.17

417

EXPECTATION_FAILED

HTTP Semantics RFC 9110, Abschnitt 15.5.18

418

IM_A_TEAPOT

HTCPCP/1.0 RFC 2324, Abschnitt 2.3.2

421

MISDIRECTED_REQUEST

HTTP Semantics RFC 9110, Abschnitt 15.5.20

422

UNPROCESSABLE_CONTENT

HTTP Semantics RFC 9110, Abschnitt 15.5.21

423

LOCKED

WebDAV RFC 4918, Abschnitt 11.3

424

FAILED_DEPENDENCY

WebDAV RFC 4918, Abschnitt 11.4

425

TOO_EARLY

Using Early Data in HTTP RFC 8470

426

UPGRADE_REQUIRED

HTTP Semantics RFC 9110, Abschnitt 15.5.22

428

PRECONDITION_REQUIRED

Additional HTTP Status Codes RFC 6585

429

TOO_MANY_REQUESTS

Additional HTTP Status Codes RFC 6585

431

REQUEST_HEADER_FIELDS_TOO_LARGE

Additional HTTP Status Codes RFC 6585

451

UNAVAILABLE_FOR_LEGAL_REASONS

An HTTP Status Code to Report Legal Obstacles RFC 7725

500

INTERNAL_SERVER_ERROR

HTTP Semantics RFC 9110, Abschnitt 15.6.1

501

NOT_IMPLEMENTED

HTTP Semantics RFC 9110, Abschnitt 15.6.2

502

BAD_GATEWAY

HTTP Semantics RFC 9110, Abschnitt 15.6.3

503

SERVICE_UNAVAILABLE

HTTP Semantics RFC 9110, Abschnitt 15.6.4

504

GATEWAY_TIMEOUT

HTTP Semantics RFC 9110, Abschnitt 15.6.5

505

HTTP_VERSION_NOT_SUPPORTED

HTTP Semantics RFC 9110, Abschnitt 15.6.6

506

VARIANT_ALSO_NEGOTIATES

Transparent Content Negotiation in HTTP RFC 2295, Abschnitt 8.1 (Experimental)

507

INSUFFICIENT_STORAGE

WebDAV RFC 4918, Abschnitt 11.5

508

LOOP_DETECTED

WebDAV Binding Extensions RFC 5842, Abschnitt 7.2 (Experimental)

510

NOT_EXTENDED

An HTTP Extension Framework RFC 2774, Abschnitt 7 (Experimental)

511

NETWORK_AUTHENTICATION_REQUIRED

Additional HTTP Status Codes RFC 6585, Abschnitt 6

Um die Abwärtskompatibilität zu erhalten, sind Enum-Werte auch im Modul http.client in Form von Konstanten vorhanden. Der Enum-Name ist gleich dem Konstanten-Namen (d.h. http.HTTPStatus.OK ist auch als http.client.OK verfügbar).

Geändert in Version 3.7: Statuscode 421 MISDIRECTED_REQUEST hinzugefügt.

Hinzugefügt in Version 3.8: Statuscode 451 UNAVAILABLE_FOR_LEGAL_REASONS hinzugefügt.

Hinzugefügt in Version 3.9: Statuscodes 103 EARLY_HINTS, 418 IM_A_TEAPOT und 425 TOO_EARLY hinzugefügt.

Geändert in Version 3.13: RFC9110-Benennung für Statuskonstanten implementiert. Alte Konstanten-Namen werden zur Abwärtskompatibilität beibehalten: 413 REQUEST_ENTITY_TOO_LARGE, 414 REQUEST_URI_TOO_LONG, 416 REQUESTED_RANGE_NOT_SATISFIABLE und 422 UNPROCESSABLE_ENTITY.

HTTP-Statuskategorie

Hinzugefügt in Version 3.12.

Die Enum-Werte haben mehrere Eigenschaften, um die HTTP-Statuskategorie anzuzeigen:

Eigenschaft

Zeigt an, dass

Details

is_informational

100 <= status <= 199

HTTP Semantics RFC 9110, Abschnitt 15

is_success

200 <= status <= 299

HTTP Semantics RFC 9110, Abschnitt 15

is_redirection

300 <= status <= 399

HTTP Semantics RFC 9110, Abschnitt 15

is_client_error

400 <= status <= 499

HTTP Semantics RFC 9110, Abschnitt 15

is_server_error

500 <= status <= 599

HTTP Semantics RFC 9110, Abschnitt 15

Verwendung

>>> from http import HTTPStatus
>>> HTTPStatus.OK.is_success
True
>>> HTTPStatus.OK.is_client_error
False
class http.HTTPMethod

Hinzugefügt in Version 3.11.

Eine Unterklasse von enum.StrEnum, die eine Reihe von HTTP-Methoden und Beschreibungen in englischer Sprache definiert.

Verwendung

>>> from http import HTTPMethod
>>>
>>> HTTPMethod.GET
<HTTPMethod.GET>
>>> HTTPMethod.GET == 'GET'
True
>>> HTTPMethod.GET.value
'GET'
>>> HTTPMethod.GET.description
'Retrieve the target.'
>>> list(HTTPMethod)
[<HTTPMethod.CONNECT>,
 <HTTPMethod.DELETE>,
 <HTTPMethod.GET>,
 <HTTPMethod.HEAD>,
 <HTTPMethod.OPTIONS>,
 <HTTPMethod.PATCH>,
 <HTTPMethod.POST>,
 <HTTPMethod.PUT>,
 <HTTPMethod.TRACE>]

HTTP-Methoden

Unterstützte, IANA-registrierte Methoden, die in http.HTTPMethod verfügbar sind, sind:

Methode

Enum-Name

Details

GET

GET

HTTP Semantics RFC 9110, Abschnitt 9.3.1

HEAD

HEAD

HTTP Semantics RFC 9110, Abschnitt 9.3.2

POST

POST

HTTP Semantics RFC 9110, Abschnitt 9.3.3

PUT

PUT

HTTP Semantics RFC 9110, Abschnitt 9.3.4

DELETE

DELETE

HTTP Semantics RFC 9110, Abschnitt 9.3.5

CONNECT

CONNECT

HTTP Semantics RFC 9110, Abschnitt 9.3.6

OPTIONS

OPTIONS

HTTP Semantics RFC 9110, Abschnitt 9.3.7

TRACE

TRACE

HTTP Semantics RFC 9110, Abschnitt 9.3.8

PATCH

PATCH

HTTP/1.1 RFC 5789