http — HTTP-moduler

Källkod: Lib/http/__init__.py


http är ett paket som samlar flera moduler för att arbeta med HyperText Transfer Protocol:

Modulen http definierar också följande enumer som hjälper dig att arbeta med http-relaterad kod:

class http.HTTPStatus

Tillagd i version 3.5.

En underklass till enum.IntEnum som definierar en uppsättning HTTP-statuskoder, orsaksfraser och långa beskrivningar skrivna på engelska.

Användning:

>>> 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-statuskoder

Statuskoder som stöds, IANA-registrerade och som finns tillgängliga i http.HTTPStatus är:

Kod

Enum-namn

Detaljer

100

CONTINUE

HTTP Semantik RFC 9110, Avsnitt 15.2.1

101

SWITCHING_PROTOCOLS

HTTP Semantik RFC 9110, Avsnitt 15.2.2

102

PROCESSING

WebDAV RFC 2518, Avsnitt 10.1

103

EARLY_HINTS

En HTTP-statuskod för att ange ledtrådar RFC 8297

200

OK

HTTP Semantik RFC 9110, Avsnitt 15.3.1

201

CREATED

HTTP Semantik RFC 9110, Avsnitt 15.3.2

202

ACCEPTED

HTTP Semantik RFC 9110, Avsnitt 15.3.3

203

NON_AUTHORITATIVE_INFORMATION

HTTP Semantik RFC 9110, Avsnitt 15.3.4

204

NO_CONTENT

HTTP Semantik RFC 9110, Avsnitt 15.3.5

205

RESET_CONTENT

HTTP Semantik RFC 9110, Avsnitt 15.3.6

206

PARTIAL_CONTENT

HTTP Semantik RFC 9110, Avsnitt 15.3.7

207

MULTI_STATUS

WebDAV RFC 4918, Avsnitt 11.1

208

ALREADY_REPORTED

WebDAV Binding Extensions RFC 5842, Avsnitt 7.1 (Experimentell)

226

IM_USED

Delta-kodning i HTTP RFC 3229, Avsnitt 10.4.1

300

MULTIPLE_CHOICES

HTTP Semantik RFC 9110, Avsnitt 15.4.1

301

MOVED_PERMANENTLY

HTTP Semantik RFC 9110, Avsnitt 15.4.2

302

FOUND

HTTP Semantik RFC 9110, Avsnitt 15.4.3

303

SEE_OTHER

HTTP Semantik RFC 9110, Avsnitt 15.4.4

304

NOT_MODIFIED

HTTP Semantik RFC 9110, Avsnitt 15.4.5

305

USE_PROXY

HTTP Semantik RFC 9110, Avsnitt 15.4.6

307

TEMPORARY_REDIRECT

HTTP Semantik RFC 9110, Avsnitt 15.4.8

308

PERMANENT_REDIRECT

HTTP Semantik RFC 9110, Avsnitt 15.4.9

400

BAD_REQUEST

HTTP Semantik RFC 9110, Avsnitt 15.5.1

401

UNAUTHORIZED

HTTP Semantik RFC 9110, Avsnitt 15.5.2

402

PAYMENT_REQUIRED

HTTP Semantik RFC 9110, Avsnitt 15.5.3

403

FORBIDDEN

HTTP Semantik RFC 9110, Avsnitt 15.5.4

404

NOT_FOUND

HTTP Semantik RFC 9110, Avsnitt 15.5.5

405

METHOD_NOT_ALLOWED

HTTP Semantik RFC 9110, Avsnitt 15.5.6

406

NOT_ACCEPTABLE

HTTP Semantik RFC 9110, Avsnitt 15.5.7

407

PROXY_AUTHENTICATION_REQUIRED

HTTP Semantik RFC 9110, Avsnitt 15.5.8

408

REQUEST_TIMEOUT

HTTP Semantik RFC 9110, Avsnitt 15.5.9

409

CONFLICT

HTTP Semantik RFC 9110, Avsnitt 15.5.10

410

GONE

HTTP Semantik RFC 9110, Avsnitt 15.5.11

411

LENGTH_REQUIRED

HTTP Semantik RFC 9110, Avsnitt 15.5.12

412

PRECONDITION_FAILED

HTTP Semantik RFC 9110, Avsnitt 15.5.13

413

CONTENT_TOO_LARGE

HTTP Semantik RFC 9110, Avsnitt 15.5.14

414

URI_TOO_LONG

HTTP Semantik RFC 9110, Avsnitt 15.5.15

415

UNSUPPORTED_MEDIA_TYPE

HTTP Semantik RFC 9110, Avsnitt 15.5.16

416

RANGE_NOT_SATISFIABLE

HTTP Semantik RFC 9110, Avsnitt 15.5.17

417

EXPECTATION_FAILED

HTTP Semantik RFC 9110, Avsnitt 15.5.18

418

IM_A_TEAPOT

HTCPCP/1.0 RFC 2324, Avsnitt 2.3.2

421

MISDIRECTED_REQUEST

HTTP Semantik RFC 9110, Avsnitt 15.5.20

422

UNPROCESSABLE_CONTENT

HTTP Semantik RFC 9110, Avsnitt 15.5.21

423

LOCKED

WebDAV RFC 4918, Avsnitt 11.3

424

FAILED_DEPENDENCY

WebDAV RFC 4918, Avsnitt 11.4

425

TOO_EARLY

Användning av tidiga data i HTTP RFC 8470

426

UPGRADE_REQUIRED

HTTP Semantik RFC 9110, Avsnitt 15.5.22

428

PRECONDITION_REQUIRED

Ytterligare HTTP-statuskoder RFC 6585

429

TOO_MANY_REQUESTS

Ytterligare HTTP-statuskoder RFC 6585

431

REQUEST_HEADER_FIELDS_TOO_LARGE

Ytterligare HTTP-statuskoder RFC 6585

451

UNAVAILABLE_FOR_LEGAL_REASONS

En HTTP-statuskod för att rapportera juridiska hinder RFC 7725

500

INTERNAL_SERVER_ERROR

HTTP Semantik RFC 9110, Avsnitt 15.6.1

501

NOT_IMPLEMENTED

HTTP Semantik RFC 9110, Avsnitt 15.6.2

502

BAD_GATEWAY

HTTP Semantik RFC 9110, Avsnitt 15.6.3

503

SERVICE_UNAVAILABLE

HTTP Semantik RFC 9110, Avsnitt 15.6.4

504

GATEWAY_TIMEOUT

HTTP Semantik RFC 9110, Avsnitt 15.6.5

505

HTTP_VERSION_NOT_SUPPORTED

HTTP Semantik RFC 9110, Avsnitt 15.6.6

506

VARIANT_ALSO_NEGOTIATES

Transparent innehållsförhandling i HTTP RFC 2295, Avsnitt 8.1 (Experimentell)

507

INSUFFICIENT_STORAGE

WebDAV RFC 4918, Avsnitt 11.5

508

LOOP_DETECTED

WebDAV Binding Extensions RFC 5842, Avsnitt 7.2 (Experimentell)

510

NOT_EXTENDED

En ram för HTTP-tillägg RFC 2774, Avsnitt 7 (Experimentell)

511

NETWORK_AUTHENTICATION_REQUIRED

Ytterligare HTTP-statuskoder RFC 6585, Avsnitt 6

För att bevara bakåtkompatibiliteten finns enum-värden också i modulen http.client i form av konstanter. Namnet på enum är lika med namnet på konstanten (dvs. http.HTTPStatus.OK finns också som http.client.OK).

Ändrad i version 3.7: Statuskod 421 MISDIRECTED_REQUEST tillagd.

Tillagd i version 3.8: Statuskod 451 UNAVAILABLE_FOR_LEGAL_REASONS tillagd.

Tillagd i version 3.9: Lagt till statuskoderna 103 EARLY_HINTS, 418 IM_A_TEAPOT och 425 TOO_EARLY.

Ändrad i version 3.13: Implementerat RFC9110-namn för statuskonstanter. Gamla namn på konstanter bevaras för bakåtkompatibilitet.

HTTP-statuskategori

Tillagd i version 3.12.

Enumvärdena har flera egenskaper för att ange HTTP-statuskategorin:

Egenskap

Anger att

Detaljer

is_informational

100 <= status <= 199

HTTP Semantik RFC 9110, Avsnitt 15

is_success

200 <= status <= 299

HTTP Semantik RFC 9110, Avsnitt 15

is_redirection

300 <= status <= 399

HTTP Semantik RFC 9110, Avsnitt 15

is_client_error

400 <= status <= 499

HTTP Semantik RFC 9110, Avsnitt 15

is_server_error

500 <= status <= 599

HTTP Semantik RFC 9110, Avsnitt 15

Användning:

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

Tillagd i version 3.11.

En underklass till enum.StrEnum som definierar en uppsättning HTTP-metoder och beskrivningar skrivna på engelska.

Användning:

>>> 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-metoder

Metoder som stöds, IANA-registrerade metoder tillgängliga i http.HTTPMethod är:

Metod

Enum-namn

Detaljer

GET

GET

HTTP Semantik RFC 9110, Avsnitt 9.3.1

HEAD

HEAD

HTTP Semantik RFC 9110, Avsnitt 9.3.2

POST

POST

HTTP Semantik RFC 9110, Avsnitt 9.3.3

PUT

PUT

HTTP Semantik RFC 9110, Avsnitt 9.3.4

DELETE

DELETE

HTTP Semantik RFC 9110, Avsnitt 9.3.5

CONNECT

CONNECT

HTTP Semantik RFC 9110, Avsnitt 9.3.6

OPTIONS

OPTIONS

HTTP Semantik RFC 9110, Avsnitt 9.3.7

TRACE

TRACE

HTTP Semantik RFC 9110, Avsnitt 9.3.8

PATCH

PATCH

HTTP/1.1 RFC 5789