Skip to main content

21.11. http — HTTP模块

源代码: Lib/http/__init__.py


http 是一个包,收集用于使用超文本传输协议的几个模块:

http 也是一个通过 http.HTTPStatus 枚举定义了多个HTTP状态代码和相关消息的模块:

class http.HTTPStatus

3.5 新版功能.

enum.IntEnum 的子类,定义一组用英语书写的HTTP状态代码,原因短语和长说明。

用法:

>>> from http import HTTPStatus
>>> HTTPStatus.OK
<HTTPStatus.OK: 200>
>>> HTTPStatus.OK == 200
True
>>> http.HTTPStatus.OK.value
200
>>> HTTPStatus.OK.phrase
'OK'
>>> HTTPStatus.OK.description
'Request fulfilled, document follows'
>>> list(HTTPStatus)
[<HTTPStatus.CONTINUE: 100>, <HTTPStatus.SWITCHING_PROTOCOLS: 101>, ...]

21.11.1. HTTP状态代码

支持,http.HTTPStatus 中可用的 IANA注册 状态代码为:

枚举名称

细节

100

CONTINUE

HTTP/1.1 RFC 7231,第6.2.1节

101

SWITCHING_PROTOCOLS

HTTP/1.1 RFC 7231,第6.2.2节

102

PROCESSING

WebDAV RFC 2518,第10.1节

200

OK

HTTP/1.1 RFC 7231,第6.3.1节

201

CREATED

HTTP/1.1 RFC 7231,第6.3.2节

202

ACCEPTED

HTTP/1.1 RFC 7231,第6.3.3节

203

NON_AUTHORITATIVE_INFORMATION

HTTP/1.1 RFC 7231,第6.3.4节

204

NO_CONTENT

HTTP/1.1 RFC 7231,第6.3.5节

205

RESET_CONTENT

HTTP/1.1 RFC 7231,第6.3.6节

206

PARTIAL_CONTENT

HTTP/1.1 RFC 7233,第4.1节

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/1.1 RFC 7231,第6.4.1节

301

MOVED_PERMANENTLY

HTTP/1.1 RFC 7231,第6.4.2节

302

FOUND

HTTP/1.1 RFC 7231,第6.4.3节

303

SEE_OTHER

HTTP/1.1 RFC 7231,第6.4.4节

304

NOT_MODIFIED

HTTP/1.1 RFC 7232,第4.1节

305

USE_PROXY

HTTP/1.1 RFC 7231,第6.4.5节

307

TEMPORARY_REDIRECT

HTTP/1.1 RFC 7231,第6.4.7节

308

PERMANENT_REDIRECT

永久重定向 RFC 7238,第3节(实验)

400

BAD_REQUEST

HTTP/1.1 RFC 7231,第6.5.1节

401

UNAUTHORIZED

HTTP/1.1认证 RFC 7235,第3.1节

402

PAYMENT_REQUIRED

HTTP/1.1 RFC 7231,第6.5.2节

403

FORBIDDEN

HTTP/1.1 RFC 7231,第6.5.3节

404

NOT_FOUND

HTTP/1.1 RFC 7231,第6.5.4节

405

METHOD_NOT_ALLOWED

HTTP/1.1 RFC 7231,第6.5.5节

406

NOT_ACCEPTABLE

HTTP/1.1 RFC 7231,第6.5.6节

407

PROXY_AUTHENTICATION_REQUIRED

HTTP/1.1认证 RFC 7235,第3.2节

408

REQUEST_TIMEOUT

HTTP/1.1 RFC 7231,第6.5.7节

409

CONFLICT

HTTP/1.1 RFC 7231,第6.5.8节

410

GONE

HTTP/1.1 RFC 7231,第6.5.9节

411

LENGTH_REQUIRED

HTTP/1.1 RFC 7231,第6.5.10节

412

PRECONDITION_FAILED

HTTP/1.1 RFC 7232,第4.2节

413

REQUEST_ENTITY_TOO_LARGE

HTTP/1.1 RFC 7231,第6.5.11节

414

REQUEST_URI_TOO_LONG

HTTP/1.1 RFC 7231,第6.5.12节

415

UNSUPPORTED_MEDIA_TYPE

HTTP/1.1 RFC 7231,第6.5.13节

416

REQUEST_RANGE_NOT_SATISFIABLE

HTTP/1.1范围请求 RFC 7233,第4.4节

417

EXPECTATION_FAILED

HTTP/1.1 RFC 7231,第6.5.14节

422

UNPROCESSABLE_ENTITY

WebDAV RFC 4918,第11.2节

423

LOCKED

WebDAV RFC 4918,第11.3节

424

FAILED_DEPENDENCY

WebDAV RFC 4918,第11.4节

426

UPGRADE_REQUIRED

HTTP/1.1 RFC 7231,第6.5.15节

428

PRECONDITION_REQUIRED

其他HTTP状态代码 RFC 6585

429

TOO_MANY_REQUESTS

其他HTTP状态代码 RFC 6585

431

REQUEST_HEADER_FIELDS_TOO_LARGE

其他HTTP状态代码 RFC 6585

500

INTERNAL_SERVER_ERROR

HTTP/1.1 RFC 7231,第6.6.1节

501

NOT_IMPLEMENTED

HTTP/1.1 RFC 7231,第6.6.2节

502

BAD_GATEWAY

HTTP/1.1 RFC 7231,第6.6.3节

503

SERVICE_UNAVAILABLE

HTTP/1.1 RFC 7231,第6.6.4节

504

GATEWAY_TIMEOUT

HTTP/1.1 RFC 7231,第6.6.5节

505

HTTP_VERSION_NOT_SUPPORTED

HTTP/1.1 RFC 7231,第6.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)。