Spec-Zone.ru › Python 3.13

http — Модули HTTP

Исходный код: Lib/http/__init__.py

http — это пакет, который объединяет несколько модулей для работы с протоколом HyperText Transfer Protocol:

  • http.client — это клиент низкого уровня для протокола HTTP; для открытия URL на высоком уровне используйте urllib.request
  • http.server содержит базовые классы серверов HTTP, основанные на socketserver
  • http.cookies содержит утилиты для реализации управления состоянием с помощью файлов cookie
  • http.cookiejar предоставляет сохранение файлов cookie

Модуль http также определяет следующие перечисления, которые помогают в работе с кодом, связанным с HTTP:

class http.HTTPStatus

Добавлен в версии 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 коды состояния, доступные в http.HTTPStatus:

END_OF_DOCUMENT_MARKER

Код

Имя перечисления

Подробности

100

CONTINUE

Семантика HTTP RFC 9110, Раздел 15.2.1

101

SWITCHING_PROTOCOLS

Семантика HTTP RFC 9110, Раздел 15.2.2

102

PROCESSING

WebDAV RFC 2518, Раздел 10.1

103

EARLY_HINTS

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

200

OK

Семантика HTTP RFC 9110, Раздел 15.3.1

201

CREATED

Семантика HTTP RFC 9110, Раздел 15.3.2

202

ACCEPTED

Семантика HTTP RFC 9110, Раздел 15.3.3

203

NON_AUTHORITATIVE_INFORMATION

Семантика HTTP RFC 9110, Раздел 15.3.4

204

NO_CONTENT

Семантика HTTP RFC 9110, Раздел 15.3.5

205

RESET_CONTENT

Семантика HTTP RFC 9110, Раздел 15.3.6

206

PARTIAL_CONTENT

Семантика HTTP RFC 9110, Раздел 15.3.7

207

MULTI_STATUS

WebDAV RFC 4918, Раздел 11.1

208

ALREADY_REPORTED

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

226

IM_USED

Дельта-кодирование в HTTP RFC 3229, Раздел 10.4.1

300

MULTIPLE_CHOICES

Семантика HTTP RFC 9110, Раздел 15.4.1

301

MOVED_PERMANENTLY

Семантика HTTP RFC 9110, Раздел 15.4.2

302

FOUND

Семантика HTTP RFC 9110, Раздел 15.4.3

303

SEE_OTHER

Семантика HTTP RFC 9110, Раздел 15.4.4

304

NOT_MODIFIED

Семантика HTTP RFC 9110, Раздел 15.4.5

305

USE_PROXY

Семантика HTTP RFC 9110, Раздел 15.4.6

307

TEMPORARY_REDIRECT

Семантика HTTP RFC 9110, Раздел 15.4.8

308

PERMANENT_REDIRECT

Семантика HTTP RFC 9110, Раздел 15.4.9

400

BAD_REQUEST

Семантика HTTP RFC 9110, Раздел 15.5.1

401

UNAUTHORIZED

Семантика HTTP RFC 9110, Раздел 15.5.2

402

PAYMENT_REQUIRED

Семантика HTTP RFC 9110, Раздел 15.5.3

403

FORBIDDEN

Семантика HTTP RFC 9110, Раздел 15.5.4

404

NOT_FOUND

Семантика HTTP RFC 9110, Раздел 15.5.5

405

METHOD_NOT_ALLOWED

Семантика HTTP RFC 9110, Раздел 15.5.6

406

NOT_ACCEPTABLE

Семантика HTTP RFC 9110, Раздел 15.5.7

407

PROXY_AUTHENTICATION_REQUIRED

Семантика HTTP RFC 9110, Раздел 15.5.8

408

REQUEST_TIMEOUT

Семантика HTTP RFC 9110, Раздел 15.5.9

409

CONFLICT

Семантика HTTP RFC 9110, Раздел 15.5.10

410

GONE

Семантика HTTP RFC 9110, Раздел 15.5.11

411

LENGTH_REQUIRED

Семантика HTTP RFC 9110, Раздел 15.5.12

412

PRECONDITION_FAILED

Семантика HTTP RFC 9110, Раздел 15.5.13

413

CONTENT_TOO_LARGE

Семантика HTTP RFC 9110, Раздел 15.5.14

414

URI_TOO_LONG

Семантика HTTP RFC 9110, Раздел 15.5.15

415

UNSUPPORTED_MEDIA_TYPE

Семантика HTTP RFC 9110, Раздел 15.5.16

416

RANGE_NOT_SATISFIABLE

Семантика HTTP RFC 9110, Раздел 15.5.17

417

EXPECTATION_FAILED

Семантика HTTP RFC 9110, Раздел 15.5.18

418

IM_A_TEAPOT

HTCPCP/1.0 RFC 2324, Раздел 2.3.2

421

MISDIRECTED_REQUEST

Семантика HTTP RFC 9110, Раздел 15.5.20

422

UNPROCESSABLE_CONTENT

Семантика HTTP RFC 9110, Раздел 15.5.21

423

LOCKED

WebDAV RFC 4918, Раздел 11.3

424

FAILED_DEPENDENCY

WebDAV RFC 4918, Раздел 11.4

425

TOO_EARLY

Использование ранних данных в HTTP RFC 8470

426

UPGRADE_REQUIRED

Семантика HTTP RFC 9110, Раздел 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

UNAVAILABLE_FOR_LEGAL_REASONS

Код состояния HTTP для отчётности о юридических препятствиях RFC 7725

500

INTERNAL_SERVER_ERROR

Семантика HTTP RFC 9110, Раздел 15.6.1

501

NOT_IMPLEMENTED

Семантика HTTP RFC 9110, Раздел 15.6.2

502

BAD_GATEWAY

Семантика HTTP RFC 9110, Раздел 15.6.3

503

SERVICE_UNAVAILABLE

Семантика HTTP RFC 9110, Раздел 15.6.4

504

GATEWAY_TIMEOUT

Семантика HTTP RFC 9110, Раздел 15.6.5

505

HTTP_VERSION_NOT_SUPPORTED

Семантика HTTP RFC 9110, Раздел 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

Для сохранения обратной совместимости, значения перечисления также присутствуют в модуле http.client в виде констант. Имя перечисления равно имени константы (например, http.HTTPStatus.OK также доступен как http.client.OK).

Изменено в версии 3.7: Добавлен 421 MISDIRECTED_REQUEST код состояния.

Добавлен в версии 3.8: Добавлен 451 UNAVAILABLE_FOR_LEGAL_REASONS код состояния.

Добавлен в версии 3.9: Добавлены 103 EARLY_HINTS, 418 IM_A_TEAPOT и 425 TOO_EARLY коды состояний.

Изменено в версии 3.13: Реализовано именование констант состояний согласно RFC9110. Старые имена констант сохранены для обратной совместимости.

Категория статуса HTTP

Добавлен в версии 3.12.

Значения перечисления имеют несколько свойств для указания категории статуса HTTP:

Свойство

Указывает на

Подробности

is_informational

100 <= status <= 199

Семантика HTTP RFC 9110, Раздел 15

is_success

200 <= status <= 299

Семантика HTTP RFC 9110, Раздел 15

is_redirection

300 <= status <= 399

Семантика HTTP RFC 9110, Раздел 15

is_client_error

400 <= status <= 499

Семантика HTTP RFC 9110, Раздел 15

is_server_error

500 <= status <= 599

Семантика HTTP RFC 9110, Раздел 15

Использование:

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

Добавлен в версии 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 методы, доступные в http.HTTPMethod, это:

Метод

Имя перечисления

Подробности

GET

GET

Семантика HTTP RFC 9110, Раздел 9.3.1

HEAD

HEAD

Семантика HTTP RFC 9110, Раздел 9.3.2

POST

POST

Семантика HTTP RFC 9110, Раздел 9.3.3

PUT

PUT

Семантика HTTP RFC 9110, Раздел 9.3.4

DELETE

DELETE

Семантика HTTP RFC 9110, Раздел 9.3.5

CONNECT

CONNECT

Семантика HTTP RFC 9110, Раздел 9.3.6

OPTIONS

OPTIONS

Семантика HTTP RFC 9110, Раздел 9.3.7

TRACE

TRACE

Семантика HTTP RFC 9110, Раздел 9.3.8

PATCH

PATCH

HTTP/1.1 RFC 5789

© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/http.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API