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
状态代码。