http — HTTP 模块 — Python 文档
来自菜鸟教程
Python/docs/3.9/library/http
http — HTTP 模块
源代码: :source:`Lib/http/__init__.py`
http 是一个包,它收集了几个用于处理超文本传输协议的模块:
- http.client是一个低级的HTTP协议客户端; 对于高级 URL 打开使用 urllib.request
- http.server 包含基于 socketserver 的基本 HTTP 服务器类
- http.cookies 具有使用 cookie 实现状态管理的实用程序
- http.cookiejar 提供cookies的持久化
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 >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list(HTTPStatus) [<HTTPStatus.CONTINUE: 100>, <HTTPStatus.SWITCHING_PROTOCOLS: 101>, ...]
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 节 |
103
|
EARLY_HINTS
|
用于指示提示的 HTTP 状态代码 RFC 8297 |
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
|
REQUESTED_RANGE_NOT_SATISFIABLE
|
HTTP/1.1 范围请求 RFC 7233,第 4.4 节 |
417
|
EXPECTATION_FAILED
|
HTTP/1.1 RFC 7231,第 6.5.14 节 |
418
|
IM_A_TEAPOT
|
HTCPCP/1.0 RFC 2324,第 2.3.2 节 |
421
|
MISDIRECTED_REQUEST
|
HTTP/2 RFC 7540,第 9.1.2 节 |
422
|
UNPROCESSABLE_ENTITY
|
WebDAV RFC 4918,第 11.2 节 |
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/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 |
451
|
UNAVAILABLE_FOR_LEGAL_REASONS
|
报告法律障碍的 HTTP 状态代码 RFC 7725 |
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
)。
3.7 版变更: 添加 421 MISDIRECTED_REQUEST
状态码。
3.8 新功能: 增加 451 UNAVAILABLE_FOR_LEGAL_REASONS
状态码。
3.9 新功能: 添加 103 EARLY_HINTS
、418 IM_A_TEAPOT
和 425 TOO_EARLY
状态代码。