http — HTTP modules

Вихідний код: Lib/http/__init__.py


http — пакет, який збирає кілька модулів для роботи з протоколом передачі гіпертексту:

  • http.client є низькорівневим клієнтом протоколу HTTP; для відкриття URL високого рівня використовуйте urllib.request

  • http.server містить основні класи HTTP-серверів на основі socketserver

  • http.cookies має утиліти для здійснення управління станом за допомогою файлів cookie

  • http.cookiejar забезпечує збереження файлів cookie

The http module also defines the following enums that help you work with http related code:

class http.HTTPStatus

Added in version 3.5.

Підклас enum.IntEnum, який визначає набір кодів стану HTTP, фраз причин і довгих описів, написаних англійською мовою.

Використання:

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

Supported, IANA-registered status codes available in http.HTTPStatus are:

Код

Назва переліку

Подробиці

100

`` ПРОДОВЖИТИ``

HTTP Semantics RFC 9110, Section 15.2.1

101

SWITCHING_PROTOCOLS

HTTP Semantics RFC 9110, Section 15.2.2

102

ОБРОБКА

WebDAV RFC 2518, Розділ 10.1

103

EARLY_HINTS

Код статусу HTTP для вказівки підказок RFC 8297

200

ОК

HTTP Semantics RFC 9110, Section 15.3.1

201

СТВОРЕНО

HTTP Semantics RFC 9110, Section 15.3.2

202

`` ПРИЙНЯТО``

HTTP Semantics RFC 9110, Section 15.3.3

203

НЕ_АВТОРИТАТИВНА_ІНФОРМАЦІЯ

HTTP Semantics RFC 9110, Section 15.3.4

204

БЕЗ_ВМІСТУ

HTTP Semantics RFC 9110, Section 15.3.5

205

RESET_CONTENT

HTTP Semantics RFC 9110, Section 15.3.6

206

PARTIAL_CONTENT

HTTP Semantics RFC 9110, Section 15.3.7

207

МУЛЬТИ_СТАТУС

WebDAV RFC 4918, Розділ 11.1

208

ВЖЕ_ПОВІДОМЛЕНО

Розширення зв’язування WebDAV RFC 5842, розділ 7.1 (експериментальний)

226

IM_USED

Дельта-кодування в HTTP RFC 3229, Розділ 10.4.1

300

MULTIPLE_CHOICES

HTTP Semantics RFC 9110, Section 15.4.1

301

ПЕРЕМІЩЕНО_ПОСТІЙНО

HTTP Semantics RFC 9110, Section 15.4.2

302

ЗНАЙДЕНО

HTTP Semantics RFC 9110, Section 15.4.3

303

SEE_OTHER

HTTP Semantics RFC 9110, Section 15.4.4

304

NOT_MODIFIED

HTTP Semantics RFC 9110, Section 15.4.5

305

USE_PROXY

HTTP Semantics RFC 9110, Section 15.4.6

307

TEMPORARY_REDIRECT

HTTP Semantics RFC 9110, Section 15.4.8

308

ПОСТІЙНЕ_ПЕРЕСПРАВЛЕННЯ

HTTP Semantics RFC 9110, Section 15.4.9

400

BAD_REQUEST

HTTP Semantics RFC 9110, Section 15.5.1

401

НЕАВТОРИЗОВАНО

HTTP Semantics RFC 9110, Section 15.5.2

402

PAYMENT_REQUIRED

HTTP Semantics RFC 9110, Section 15.5.3

403

ЗАБОРОНЕНО

HTTP Semantics RFC 9110, Section 15.5.4

404

НЕ_ЗНАЙДЕНО

HTTP Semantics RFC 9110, Section 15.5.5

405

METHOD_NOT_ALLOWED

HTTP Semantics RFC 9110, Section 15.5.6

406

NOT_ACCEPTABLE

HTTP Semantics RFC 9110, Section 15.5.7

407

PROXY_AUTHENTICATION_REQUIRED

HTTP Semantics RFC 9110, Section 15.5.8

408

REQUEST_TIMEOUT

HTTP Semantics RFC 9110, Section 15.5.9

409

КОНФЛІКТ

HTTP Semantics RFC 9110, Section 15.5.10

410

ПІШЕЛ

HTTP Semantics RFC 9110, Section 15.5.11

411

LENGTH_REQUIRED

HTTP Semantics RFC 9110, Section 15.5.12

412

PRECONDITION_FAILED

HTTP Semantics RFC 9110, Section 15.5.13

413

CONTENT_TOO_LARGE

HTTP Semantics RFC 9110, Section 15.5.14

414

URI_TOO_LONG

HTTP Semantics RFC 9110, Section 15.5.15

415

UNSUPPORTED_MEDIA_TYPE

HTTP Semantics RFC 9110, Section 15.5.16

416

RANGE_NOT_SATISFIABLE

HTTP Semantics RFC 9110, Section 15.5.17

417

EXPECTATION_FAILED

HTTP Semantics RFC 9110, Section 15.5.18

418

Я_ЧАЙНИК

HTTPS/1.0 RFC 2324, Розділ 2.3.2

421

MISDIRECTED_REQUEST

HTTP Semantics RFC 9110, Section 15.5.20

422

UNPROCESSABLE_CONTENT

HTTP Semantics RFC 9110, Section 15.5.21

423

ЗАБЛОКУВАНО

WebDAV RFC 4918, Розділ 11.3

424

FAILED_DEPENDENCY

WebDAV RFC 4918, Розділ 11.4

425

НАДАНТО_РАНО

Використання ранніх даних у HTTP RFC 8470

426

UPGRADE_REQUIRED

HTTP Semantics RFC 9110, Section 15.5.22

428

PRECONDITION_REQUIRED

Додаткові коди стану HTTP RFC 6585

429

TOO_MANY_REQUESTS

Додаткові коди стану HTTP RFC 6585

431

REQUEST_HEADER_FIELDS_TOO_LARGE

Додаткові коди стану HTTP RFC 6585

451

НЕДОСТУПНИЙ_З_ЮРИДИЧНИХ_ПРИЧИН

Код статусу HTTP для повідомлення про юридичні перешкоди RFC 7725

500

INTERNAL_SERVER_ERROR

HTTP Semantics RFC 9110, Section 15.6.1

501

NOT_IMPLEMENTED

HTTP Semantics RFC 9110, Section 15.6.2

502

BAD_GATEWAY

HTTP Semantics RFC 9110, Section 15.6.3

503

СЛУЖБА_НЕДОСТУПНА

HTTP Semantics RFC 9110, Section 15.6.4

504

GATEWAY_TIMEOUT

HTTP Semantics RFC 9110, Section 15.6.5

505

HTTP_VERSION_NOT_SUPPORTED

HTTP Semantics RFC 9110, Section 15.6.6

506

VARIANT_ALSO_NEGOTIATES

Узгодження прозорого вмісту в HTTP RFC 2295, розділ 8.1 (експериментальний)

507

INSUFFICIENT_STORAGE

WebDAV RFC 4918, Розділ 11.5

508

LOOP_DETECTED

Розширення прив’язки WebDAV RFC 5842, розділ 7.2 (експериментальний)

510

NOT_EXTENDED

Фреймворк розширення HTTP RFC 2774, Розділ 7 (Експериментальний)

511

NETWORK_AUTHENTICATION_REQUIRED

Додаткові коди стану HTTP RFC 6585, Розділ 6

Щоб зберегти зворотну сумісність, значення enum також присутні в модулі http.client у формі констант. Назва переліку дорівнює імені константи (тобто http.HTTPStatus.OK також доступний як http.client.OK).

Змінено в версії 3.7: Додано код статусу 421 MISDIRECTED_REQUEST.

Added in version 3.8: Додано код статусу 451 UNAVAILABLE_FOR_LEGAL_REASONS.

Added in version 3.9: Додано коди статусу 103 EARLY_HINTS, 418 IM_A_TEAPOT і 425 TOO_EARLY.

Змінено в версії 3.13: Implemented RFC9110 naming for status constants. Old constant names are preserved for backwards compatibility.

HTTP status category

Added in version 3.12.

The enum values have several properties to indicate the HTTP status category:

Property

Indicates that

Подробиці

is_informational

100 <= status <= 199

HTTP Semantics RFC 9110, Section 15

is_success

200 <= status <= 299

HTTP Semantics RFC 9110, Section 15

is_redirection

300 <= status <= 399

HTTP Semantics RFC 9110, Section 15

is_client_error

400 <= status <= 499

HTTP Semantics RFC 9110, Section 15

is_server_error

500 <= status <= 599

HTTP Semantics RFC 9110, Section 15

Використання:

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

Added in version 3.11.

A subclass of enum.StrEnum that defines a set of HTTP methods and descriptions written in English.

Використання:

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

Supported, IANA-registered methods available in http.HTTPMethod are:

метод

Назва переліку

Подробиці

GET

GET

HTTP Semantics RFC 9110, Section 9.3.1

HEAD

HEAD

HTTP Semantics RFC 9110, Section 9.3.2

POST

POST

HTTP Semantics RFC 9110, Section 9.3.3

PUT

PUT

HTTP Semantics RFC 9110, Section 9.3.4

DELETE

DELETE

HTTP Semantics RFC 9110, Section 9.3.5

CONNECT

CONNECT

HTTP Semantics RFC 9110, Section 9.3.6

OPTIONS

OPTIONS

HTTP Semantics RFC 9110, Section 9.3.7

TRACE

TRACE

HTTP Semantics RFC 9110, Section 9.3.8

PATCH

PATCH

HTTP/1.1 RFC 5789