diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2014-12-23 14:28:28 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2014-12-23 14:28:28 (GMT) |
commit | e4db76967d7fb0ec0f5a98a9603ca5563f4a8320 (patch) | |
tree | 5937da66f842e1d62f5b31e9bde2d225a68ae191 /Doc | |
parent | ab47932212c363e05365506525aac9b008e70144 (diff) | |
download | cpython-e4db76967d7fb0ec0f5a98a9603ca5563f4a8320.zip cpython-e4db76967d7fb0ec0f5a98a9603ca5563f4a8320.tar.gz cpython-e4db76967d7fb0ec0f5a98a9603ca5563f4a8320.tar.bz2 |
Issue #21793: Added http.HTTPStatus enums (i.e. HTTPStatus.OK,
HTTPStatus.NOT_FOUND). Patch by Demian Brecht.
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/library/http.rst | 121 | ||||
-rw-r--r-- | Doc/whatsnew/3.5.rst | 5 |
2 files changed, 125 insertions, 1 deletions
diff --git a/Doc/library/http.rst b/Doc/library/http.rst index a387a37..6a0b7b2 100644 --- a/Doc/library/http.rst +++ b/Doc/library/http.rst @@ -1,7 +1,16 @@ :mod:`http` --- HTTP modules ============================ -``http`` is a package that collects several modules for working with the +.. module:: http + :synopsis: HTTP status codes and messages + +.. index:: + pair: HTTP; protocol + single: HTTP; http (standard module) + +**Source code:** :source:`Lib/http/__init__.py` + +:mod:`http` is a also package that collects several modules for working with the HyperText Transfer Protocol: * :mod:`http.client` is a low-level HTTP protocol client; for high-level URL @@ -9,3 +18,113 @@ HyperText Transfer Protocol: * :mod:`http.server` contains basic HTTP server classes based on :mod:`socketserver` * :mod:`http.cookies` has utilities for implementing state management with cookies * :mod:`http.cookiejar` provides persistence of cookies + +:mod:`http` is also a module that defines a number of HTTP status codes and +associated messages through the :class:`http.HTTPStatus` enum: + +.. class:: HTTPStatus + + A subclass of :class:`enum.IntEnum` that defines a set of HTTP status codes, + reason phrases and long descriptions written in English. + + Usage:: + + >>> 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>, ...] + + .. versionadded:: 3.5 + Added the *HTTPStatus* Enum + + The supported HTTP status codes are: + + === ============================== + 100 Continue + 101 Switching Protocols + 102 Processing + 200 OK + 201 Created + 202 Accepted + 203 Non-Authoritative Information + 204 No Content + 205 Reset Content + 206 Partial Content + 207 Multi-Status + 208 Already Reported + 226 IM Used + 300 Multiple Choices + 301 Moved Permanently + 302 Found + 303 See Other + 304 Not Modified + 305 Use Proxy + 306 Switch Proxy + 307 Temporary Redirect + 308 Permanent Redirect + 400 Bad Request + 401 Unauthorized + 402 Payment Required + 403 Forbidden + 404 Not Found + 405 Method Not Allowed + 406 Not Acceptable + 407 Proxy Authentication Required + 408 Request Timeout + 409 Conflict + 410 Gone + 411 Length Required + 412 Precondition Failed + 413 Request Entity Too Large + 414 Request URI Too Long + 415 Unsupported Media Type + 416 Request Range Not Satisfiable + 417 Expectation Failed + 418 I'm a teapot + 419 Authentication Timeout + 420 Method Failure *(Spring framework)* + 422 Unprocessable Entity + 423 Locked + 424 Failed Dependency + 426 Upgrade Required + 428 Precondition Required + 429 Too Many Requests + 431 Request Header Field Too Large + 440 Login Timeout *(Microsoft)* + 444 No Response *(Nginx)* + 449 Retry With *(Microsoft)* + 450 Blocked By Windows Parental Controls *(Microsoft)* + 494 Request Header Too Large *(Nginx)* + 495 Cert Error *(Nginx)* + 496 No Cert *(Nginx)* + 497 HTTP To HTTPS *(Nginx)* + 499 Client Closed Request *(Nginx)* + 500 Internal Server Error + 501 Not Implemented + 502 Bad Gateway + 503 Service Unavailable + 504 Gateway Timeout + 505 HTTP Version Not Supported + 506 Variant Also Negotiates + 507 Insufficient Storage + 508 Loop Detected + 509 Bandwidth Limit Exceeded + 510 Not Extended + 511 Network Authentication Required + 520 Origin Error *(CloudFlare)* + 521 Web Server Is Down *(CloudFlare)* + 522 Connection Timed Out *(CloudFlare)* + 523 Proxy Declined Request *(CloudFlare)* + 524 A Timeout Occurred *(CloudFlare)* + 598 Network Read Timeout Error + 599 Network Connect Timeout Error + === ============================== diff --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst index 658c975..def4add 100644 --- a/Doc/whatsnew/3.5.rst +++ b/Doc/whatsnew/3.5.rst @@ -451,6 +451,11 @@ Changes in the Python API **without** caching ``None`` in :data:`sys.path_importer_cache` which is different than the typical case (:issue:`22834`). +* HTTP status code and messages from `http.client` and `http.server` were + refactored into a common :class:`~http.HTTPStatus` enum. The values in + `http.client` and `http.server` remain available for backwards compatibility. + (Contributed by Demian Brecht in :issue:`21793`.) + Changes in the C API -------------------- |