summaryrefslogtreecommitdiffstats
path: root/Doc/library/http.rst
blob: 0f16a2f6b6d904eb0ac401757ffcfacfa4bbd883 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
:mod:`http` --- HTTP modules
============================

.. 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
  opening use :mod:`urllib.request`
* :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

   .. versionadded:: 3.5

   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>, ...]

   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
   === ==============================