httpHTTP模块

源代码: Lib / http / __ init__.py


http是一个包,它收集了几个用于处理远程文本传输协议的模块:

  • http.client是一个低级HTTP协议客户端;用于高级URL打开使用urllib.request
  • http.server包含基于socketserver
  • http.cookies有实用程序用cookie实现状态管理
  • http.cookiejar提供持久的cookie

http也是一个模块,通过http.HTTPStatus枚举:

class http.HTTPStatus

版本3.5中的新功能

的子类enum.IntEnum定义了一组HTTP状态代码,原因短语和用英语写的长描述.

使用

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

HTTP状态代码

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

代码 枚举名称 详情
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 RFC7233 ,第4.1节
207 MULTI_STATUS WebDAV RFC 4918 ,第11.1节
208 ALREADY_REPORTED WebDAV绑定扩展 RFC5842 ,第7.1节(实验)
226 IM_USED 用HTTP编码Delta 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
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状态代码