"http" — modules HTTP
*********************

**Code source :** Lib/http/__init__.py

======================================================================

"http" est un paquet qui rassemble plusieurs modules servant à
travailler avec le protocole HTTP (*HyperText Transfer Procotol*) :

* Le module "http.client" est un client HTTP bas niveau. Pour accéder
  à des ressources web, utiliser le module haut niveau
  "urllib.request"

* Le module "http.server" contient des classes serveur HTTP basiques
  basées sur "socketserver"

* Le module "http.cookies" contient des utilitaires liés à la gestion
  d'état HTTP via les cookies

* Le module "http.cookiejar" fournit un mécanisme de persistance des
  cookies

"http" est aussi un module qui définit une liste de codes d'état HTTP
et les messages associés par le biais de l'énumération
"http.HTTPStatus" :

class http.HTTPStatus

   Nouveau dans la version 3.5.

   Sous-classe de "enum.IntEnum" qui définit un ensemble de codes
   d'état HTTP, messages explicatifs et descriptions complètes écrites
   en anglais.

   Utilisation :

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


Codes d'état HTTP
=================

Les codes d'état disponibles (enregistrés auprès de l'IANA) dans
"http.HTTPStatus" sont :

+---------+-------------------------------------+---------------------------------------------------------------------------------+
| Code    | Message                             | Détails                                                                         |
|=========|=====================================|=================================================================================|
| "100"   | "CONTINUE"                          | HTTP/1.1 **RFC 7231**, Section 6.2.1                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "101"   | "SWITCHING_PROTOCOLS"               | HTTP/1.1 **RFC 7231**, Section 6.2.2                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "102"   | "PROCESSING"                        | *WebDAV* **RFC 2518**, Section 10.1                                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "103"   | "EARLY_HINTS"                       | An HTTP Status Code for Indicating Hints **RFC 8297**                           |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "200"   | "OK"                                | HTTP/1.1 **RFC 7231**, Section 6.3.1                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "201"   | "CREATED"                           | HTTP/1.1 **RFC 7231**, Section 6.3.2                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "202"   | "ACCEPTED"                          | HTTP/1.1 **RFC 7231**, Section 6.3.3                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "203"   | "NON_AUTHORITATIVE_INFORMATION"     | HTTP/1.1 **RFC 7231**, Section 6.3.4                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "204"   | "NO_CONTENT"                        | HTTP/1.1 **RFC 7231**, Section 6.3.5                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "205"   | "RESET_CONTENT"                     | HTTP/1.1 **RFC 7231**, Section 6.3.6                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "206"   | "PARTIAL_CONTENT"                   | HTTP/1.1 **RFC 7233**, Section 4.1                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "207"   | "MULTI_STATUS"                      | *WebDAV* **RFC 4918**, Section 11.1                                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "208"   | "ALREADY_REPORTED"                  | *WebDAV* Binding Extensions **RFC 5842**, Section 7.1 (Expérimental)            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "226"   | "IM_USED"                           | Delta Encoding in HTTP **RFC 3229**, Section 10.4.1                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "300"   | "MULTIPLE_CHOICES"                  | HTTP/1.1 **RFC 7231**, Section 6.4.1                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "301"   | "MOVED_PERMANENTLY"                 | HTTP/1.1 **RFC 7231**, Section 6.4.2                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "302"   | "FOUND"                             | HTTP/1.1 **RFC 7231**, Section 6.4.3                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "303"   | "SEE_OTHER"                         | HTTP/1.1 **RFC 7231**, Section 6.4.4                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "304"   | "NOT_MODIFIED"                      | HTTP/1.1 **RFC 7232**, Section 4.1                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "305"   | "USE_PROXY"                         | HTTP/1.1 **RFC 7231**, Section 6.4.5                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "307"   | "TEMPORARY_REDIRECT"                | HTTP/1.1 **RFC 7231**, Section 6.4.7                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "308"   | "PERMANENT_REDIRECT"                | Permanent Redirect **RFC 7238**, Section 3 (Expérimental)                       |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "400"   | "BAD_REQUEST"                       | HTTP/1.1 **RFC 7231**, Section 6.5.1                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "401"   | "UNAUTHORIZED"                      | HTTP/1.1 Authentication **RFC 7235**, Section 3.1                               |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "402"   | "PAYMENT_REQUIRED"                  | HTTP/1.1 **RFC 7231**, Section 6.5.2                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "403"   | "FORBIDDEN"                         | HTTP/1.1 **RFC 7231**, Section 6.5.3                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "404"   | "NOT_FOUND"                         | HTTP/1.1 **RFC 7231**, Section 6.5.4                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "405"   | "METHOD_NOT_ALLOWED"                | HTTP/1.1 **RFC 7231**, Section 6.5.5                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "406"   | "NOT_ACCEPTABLE"                    | HTTP/1.1 **RFC 7231**, Section 6.5.6                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "407"   | "PROXY_AUTHENTICATION_REQUIRED"     | HTTP/1.1 Authentication **RFC 7235**, Section 3.2                               |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "408"   | "REQUEST_TIMEOUT"                   | HTTP/1.1 **RFC 7231**, Section 6.5.7                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "409"   | "CONFLICT"                          | HTTP/1.1 **RFC 7231**, Section 6.5.8                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "410"   | "GONE"                              | HTTP/1.1 **RFC 7231**, Section 6.5.9                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "411"   | "LENGTH_REQUIRED"                   | HTTP/1.1 **RFC 7231**, Section 6.5.10                                           |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "412"   | "PRECONDITION_FAILED"               | HTTP/1.1 **RFC 7232**, Section 4.2                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "413"   | "REQUEST_ENTITY_TOO_LARGE"          | HTTP/1.1 **RFC 7231**, Section 6.5.11                                           |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "414"   | "REQUEST_URI_TOO_LONG"              | HTTP/1.1 **RFC 7231**, Section 6.5.12                                           |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "415"   | "UNSUPPORTED_MEDIA_TYPE"            | HTTP/1.1 **RFC 7231**, Section 6.5.13                                           |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "416"   | "REQUESTED_RANGE_NOT_SATISFIABLE"   | HTTP/1.1 Range Requests **RFC 7233**, Section 4.4                               |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "417"   | "EXPECTATION_FAILED"                | HTTP/1.1 **RFC 7231**, Section 6.5.14                                           |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "418"   | "IM_A_TEAPOT"                       | HTCPCP/1.0 **RFC 2324**, Section 2.3.2                                          |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "421"   | "MISDIRECTED_REQUEST"               | HTTP/2 **RFC 7540**, Section 9.1.2                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "422"   | "UNPROCESSABLE_ENTITY"              | *WebDAV* **RFC 4918**, Section 11.2                                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "423"   | "LOCKED"                            | *WebDAV* **RFC 4918**, Section 11.3                                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "424"   | "FAILED_DEPENDENCY"                 | *WebDAV* **RFC 4918**, Section 11.4                                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "425"   | "TOO_EARLY"                         | Using Early Data in HTTP **RFC 8470**                                           |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "426"   | "UPGRADE_REQUIRED"                  | HTTP/1.1 **RFC 7231**, Section 6.5.15                                           |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "428"   | "PRECONDITION_REQUIRED"             | Additional HTTP Status Codes **RFC 6585**                                       |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "429"   | "TOO_MANY_REQUESTS"                 | Additional HTTP Status Codes **RFC 6585**                                       |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "431"   | "REQUEST_HEADER_FIELDS_TOO_LARGE"   | Additional HTTP Status Codes **RFC 6585**                                       |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "451"   | "UNAVAILABLE_FOR_LEGAL_REASONS"     | An HTTP Status Code to Report Legal Obstacles **RFC 7725**                      |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "500"   | "INTERNAL_SERVER_ERROR"             | HTTP/1.1 **RFC 7231**, Section 6.6.1                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "501"   | "NOT_IMPLEMENTED"                   | HTTP/1.1 **RFC 7231**, Section 6.6.2                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "502"   | "BAD_GATEWAY"                       | HTTP/1.1 **RFC 7231**, Section 6.6.3                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "503"   | "SERVICE_UNAVAILABLE"               | HTTP/1.1 **RFC 7231**, Section 6.6.4                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "504"   | "GATEWAY_TIMEOUT"                   | HTTP/1.1 **RFC 7231**, Section 6.6.5                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "505"   | "HTTP_VERSION_NOT_SUPPORTED"        | HTTP/1.1 **RFC 7231**, Section 6.6.6                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "506"   | "VARIANT_ALSO_NEGOTIATES"           | Transparent Content Negotiation in HTTP **RFC 2295**, Section 8.1               |
|         |                                     | (Expérimental)                                                                  |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "507"   | "INSUFFICIENT_STORAGE"              | *WebDAV* **RFC 4918**, Section 11.5                                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "508"   | "LOOP_DETECTED"                     | *WebDAV Binding Extensions* **RFC 5842**, Section 7.2 (Expérimental)            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "510"   | "NOT_EXTENDED"                      | An HTTP Extension Framework **RFC 2774**, Section 7 (Expérimental)              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "511"   | "NETWORK_AUTHENTICATION_REQUIRED"   | Codes d'état HTTP supplémentaires **RFC 6585**, Section 6                       |
+---------+-------------------------------------+---------------------------------------------------------------------------------+

Dans le but de préserver la compatibilité descendante, les valeurs
d'énumération sont aussi présentes dans le module "http.client" sous
forme de constantes. Les noms de valeurs de l'énumération sont
accessibles de deux manières : par exemple, le code HTTP 200 est
accessible sous les noms "http.HTTPStatus.OK" et "http.client.OK".

Modifié dans la version 3.7: Ajouté le code d'état "421
MISDIRECTED_REQUEST".

Nouveau dans la version 3.8: Added "451 UNAVAILABLE_FOR_LEGAL_REASONS"
status code.

Nouveau dans la version 3.9: Added "103 EARLY_HINTS", "418
IM_A_TEAPOT" and "425 TOO_EARLY" status codes.
