On this page
http — HTTP 模块
源代码: Lib/http/init.py
http是一个软件包,它收集了几个用于使用超文本传输协议的模块:
http.client是低级 HTTP 协议 Client 端;对于高级网址打开,请使用urllib.request
http.server包含基于socketserver的基本 HTTP 服务器类
http.cookies具有 Util,用于使用 Cookie 实施状态 Management
http.cookiejar提供 cookie 的持久性
http也是一个模块,它passhttp.HTTPStatus枚举定义了许多 HTTP 状态代码和相关消息:
- 类别
http.
HTTPStatus
- 3.5 版中的新Function。
enum.IntEnum的子类,它定义一组用英语编写的 HTTP 状态代码,原因短语和详细说明。
Usage:
>>> 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-registered状态代码为:
Code | Enum Name | Details |
---|---|---|
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 |
REQUESTED_RANGE_NOT_SATISFIABLE |
HTTP/1.1 范围请求 RFC 7233,第 4.4 节 |
417 |
EXPECTATION_FAILED |
HTTP/1.1 RFC 7231,第 6.5.14 节 |
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 节 |
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 版的新Function:添加了451 UNAVAILABLE_FOR_LEGAL_REASONS
状态代码。