http — HTTP 模組

原始碼: Lib/http/__init__.py


http 是一個包,它收集了幾個用於處理超文字傳輸協議的模組

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 中可用

程式碼

列舉名稱

詳細資訊

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