http
— HTTP-модули¶
Источник: Lib/http/__init__.py
http
- это пакет, в котором собрано несколько модулей для работы с протоколом HyperText Transfer Protocol:
http.client
- низкоуровневый клиент протокола HTTP; для открытия высокоуровневых URL используйтеurllib.request
.http.server
содержит базовые классы HTTP-серверов, основанные наsocketserver
http.cookies
содержит утилиты для реализации управления состоянием с помощью cookieshttp.cookiejar
обеспечивает сохранение файлов cookie
Модуль http
также определяет следующие перечисления, которые помогут вам работать с кодом, связанным с http:
- 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¶
Поддерживаются, IANA-registered status codes доступны в http.HTTPStatus
:
Код |
Имя переменной |
Подробности |
---|---|---|
|
|
Семантика HTTP RFC 9110, раздел 15.2.1 |
|
|
Семантика HTTP RFC 9110, раздел 15.2.2 |
|
|
WebDAV RFC 2518, раздел 10.1 |
|
|
Код состояния HTTP для обозначения подсказок RFC 8297 |
|
|
Семантика HTTP RFC 9110, раздел 15.3.1 |
|
|
Семантика HTTP RFC 9110, раздел 15.3.2 |
|
|
Семантика HTTP RFC 9110, раздел 15.3.3 |
|
|
Семантика HTTP RFC 9110, раздел 15.3.4 |
|
|
Семантика HTTP RFC 9110, раздел 15.3.5 |
|
|
Семантика HTTP RFC 9110, раздел 15.3.6 |
|
|
Семантика HTTP RFC 9110, раздел 15.3.7 |
|
|
WebDAV RFC 4918, раздел 11.1 |
|
|
Расширения привязки WebDAV RFC 5842, раздел 7.1 (экспериментальный) |
|
|
Дельта-кодировка в HTTP RFC 3229, раздел 10.4.1 |
|
|
Семантика HTTP RFC 9110, раздел 15.4.1 |
|
|
Семантика HTTP RFC 9110, раздел 15.4.2 |
|
|
Семантика HTTP RFC 9110, раздел 15.4.3 |
|
|
Семантика HTTP RFC 9110, раздел 15.4.4 |
|
|
Семантика HTTP RFC 9110, раздел 15.4.5 |
|
|
Семантика HTTP RFC 9110, раздел 15.4.6 |
|
|
Семантика HTTP RFC 9110, раздел 15.4.8 |
|
|
Семантика HTTP RFC 9110, раздел 15.4.9 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.1 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.2 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.3 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.4 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.5 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.6 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.7 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.8 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.9 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.10 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.11 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.12 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.13 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.14 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.15 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.16 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.17 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.18 |
|
|
HTCPCP/1.0 RFC 2324, раздел 2.3.2 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.20 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.21 |
|
|
WebDAV RFC 4918, раздел 11.3 |
|
|
WebDAV RFC 4918, раздел 11.4 |
|
|
Использование ранних данных в HTTP RFC 8470 |
|
|
Семантика HTTP RFC 9110, раздел 15.5.22 |
|
|
Дополнительные коды состояния HTTP RFC 6585 |
|
|
Дополнительные коды состояния HTTP RFC 6585 |
|
|
Дополнительные коды состояния HTTP RFC 6585 |
|
|
Код состояния HTTP для сообщения о юридических препятствиях RFC 7725 |
|
|
Семантика HTTP RFC 9110, раздел 15.6.1 |
|
|
Семантика HTTP RFC 9110, раздел 15.6.2 |
|
|
Семантика HTTP RFC 9110, раздел 15.6.3 |
|
|
Семантика HTTP RFC 9110, раздел 15.6.4 |
|
|
Семантика HTTP RFC 9110, раздел 15.6.5 |
|
|
Семантика HTTP RFC 9110, раздел 15.6.6 |
|
|
Прозрачное согласование содержимого в HTTP RFC 2295, раздел 8.1 (экспериментальный) |
|
|
WebDAV RFC 4918, раздел 11.5 |
|
|
Расширения привязки WebDAV RFC 5842, раздел 7.2 (экспериментальный) |
|
|
Фреймворк расширений HTTP RFC 2774, раздел 7 (Экспериментальный) |
|
|
Дополнительные коды состояния HTTP RFC 6585, раздел 6 |
Чтобы сохранить обратную совместимость, значения перечислений также присутствуют в модуле 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: Реализовано именование констант состояния по стандарту RFC9110. Старые имена констант сохраняются для обратной совместимости.
Категория состояния HTTP¶
Added in version 3.12.
Значения перечисления имеют несколько свойств, указывающих на категорию статуса HTTP:
Недвижимость |
Указывает на то, что |
Подробности |
---|---|---|
|
|
Семантика HTTP RFC 9110, раздел 15 |
|
|
Семантика HTTP RFC 9110, раздел 15 |
|
|
Семантика HTTP RFC 9110, раздел 15 |
|
|
Семантика HTTP RFC 9110, раздел 15 |
|
|
Семантика HTTP RFC 9110, раздел 15 |
Использование:
>>> from http import HTTPStatus >>> HTTPStatus.OK.is_success True >>> HTTPStatus.OK.is_client_error False
- class http.HTTPMethod¶
Added in version 3.11.
Подкласс
enum.StrEnum
, определяющий набор HTTP-методов и их описания на английском языке.Использование:
>>> 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¶
Поддерживаются, IANA-registered methods доступны в http.HTTPMethod
:
Метод |
Имя переменной |
Подробности |
---|---|---|
|
|
Семантика HTTP RFC 9110, раздел 9.3.1 |
|
|
Семантика HTTP RFC 9110, раздел 9.3.2 |
|
|
Семантика HTTP RFC 9110, раздел 9.3.3 |
|
|
Семантика HTTP RFC 9110, раздел 9.3.4 |
|
|
Семантика HTTP RFC 9110, раздел 9.3.5 |
|
|
Семантика HTTP RFC 9110, раздел 9.3.6 |
|
|
Семантика HTTP RFC 9110, раздел 9.3.7 |
|
|
Семантика HTTP RFC 9110, раздел 9.3.8 |
|
|
HTTP/1.1 RFC 5789 |