"http" --- módulos HTTP
***********************

**Código-fonte:** Lib/http/__init__.py

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

"http" é um pacote que coleta vários módulos para trabalhar com o
Protocolo de Transferência de Hipertexto:

* "http.client" é um cliente de protocolo HTTP de baixo nível; para
  abertura de URL de alto nível, use "urllib.request"

* "http.server" contém classes básicas de servidor HTTP baseadas em
  "socketserver"

* "http.cookies" tem utilidades para implementar gerenciamento de
  estado com cookies

* "http.cookiejar" provê persistência de cookies

"http" é também um módulo que define um número de códigos de status
HTTP e mensagens associadas através do enum "http.HTTPStatus":

class http.HTTPStatus

   Novo na versão 3.5.

   Subclasse de "enum.IntEnum" que define um conjunto de códigos de
   status HTTP, frases de razão e descrições longas escritas em
   inglês.

   Uso:

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


códigos de status HTTP
======================

Suportados, códigos de status IANA-registered disponíveis em
"http.HTTPStatus" são:

+---------+-------------------------------------+---------------------------------------------------------------------------------+
| Código  | Nome da Enumeração                  | Detalhes                                                                        |
|=========|=====================================|=================================================================================|
| "100"   | "CONTINUE"                          | HTTP/1.1 **RFC 7231**, Seção 6.2.1                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "101"   | "SWITCHING_PROTOCOLS"               | HTTP/1.1 **RFC 7231**, Seção 6.2.2                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "102"   | "PROCESSING"                        | WebDAV **RFC 2518**, Seção 10.1                                                 |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "103"   | "EARLY_HINTS"                       | Um código de status HTTP para indicar dicas **RFC 8297**                        |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "200"   | "OK"                                | HTTP/1.1 **RFC 7231**, Seção 6.3.1                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "201"   | "CREATED"                           | HTTP/1.1 **RFC 7231**, Seção 6.3.2                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "202"   | "ACCEPTED"                          | HTTP/1.1 **RFC 7231**, Seção 6.3.3                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "203"   | "NON_AUTHORITATIVE_INFORMATION"     | HTTP/1.1 **RFC 7231**, Seção 6.3.4                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "204"   | "NO_CONTENT"                        | HTTP/1.1 **RFC 7231**, Seção 6.3.5                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "205"   | "RESET_CONTENT"                     | HTTP/1.1 **RFC 7231**, Seção 6.3.6                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "206"   | "PARTIAL_CONTENT"                   | HTTP/1.1 **RFC 7233**, Seção 4.1                                                |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "207"   | "MULTI_STATUS"                      | WebDAV **RFC 4918**, Seção 11.1                                                 |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "208"   | "ALREADY_REPORTED"                  | Extensões Vinculadas WebDAV **RFC 5842**, Seção 7.1 (Experimental)              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "226"   | "IM_USED"                           | Codificador Delta em HTTP **RFC 3229**, Seção 10.4.1                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "300"   | "MULTIPLE_CHOICES"                  | HTTP/1.1 **RFC 7231**, Seção 6.4.1                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "301"   | "MOVED_PERMANENTLY"                 | HTTP/1.1 **RFC 7231**, Seção 6.4.2                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "302"   | "FOUND"                             | HTTP/1.1 **RFC 7231**, Seção 6.4.3                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "303"   | "SEE_OTHER"                         | HTTP/1.1 **RFC 7231**, Seção 6.4.4                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "304"   | "NOT_MODIFIED"                      | HTTP/1.1 **RFC 7232**, Seção 4.1                                                |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "305"   | "USE_PROXY"                         | HTTP/1.1 **RFC 7231**, Seção 6.4.5                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "307"   | "TEMPORARY_REDIRECT"                | HTTP/1.1 **RFC 7231**, Seção 6.4.7                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "308"   | "PERMANENT_REDIRECT"                | Redirecionamento Permanente **RFC 7238**, Seção 3 (Experimental)                |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "400"   | "BAD_REQUEST"                       | HTTP/1.1 **RFC 7231**, Seção 6.5.1                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "401"   | "UNAUTHORIZED"                      | Autenticação HTTP/1.1 **RFC 7235**, Seção 3.1                                   |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "402"   | "PAYMENT_REQUIRED"                  | HTTP/1.1 **RFC 7231**, Seção 6.5.2                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "403"   | "FORBIDDEN"                         | HTTP/1.1 **RFC 7231**, Seção 6.5.3                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "404"   | "NOT_FOUND"                         | HTTP/1.1 **RFC 7231**, Seção 6.5.4                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "405"   | "METHOD_NOT_ALLOWED"                | HTTP/1.1 **RFC 7231**, Seção 6.5.5                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "406"   | "NOT_ACCEPTABLE"                    | HTTP/1.1 **RFC 7231**, Seção 6.5.6                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "407"   | "PROXY_AUTHENTICATION_REQUIRED"     | Autenticação HTTP/1.1 **RFC 7235**, Seção 3.2                                   |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "408"   | "REQUEST_TIMEOUT"                   | HTTP/1.1 **RFC 7231**, Seção 6.5.7                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "409"   | "CONFLICT"                          | HTTP/1.1 **RFC 7231**, Seção 6.5.8                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "410"   | "GONE"                              | HTTP/1.1 **RFC 7231**, Seção 6.5.9                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "411"   | "LENGTH_REQUIRED"                   | HTTP/1.1 **RFC 7231**, Seção 6.5.10                                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "412"   | "PRECONDITION_FAILED"               | HTTP/1.1 **RFC 7232**, Seção 4.2                                                |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "413"   | "REQUEST_ENTITY_TOO_LARGE"          | HTTP/1.1 **RFC 7231**, Seção 6.5.11                                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "414"   | "REQUEST_URI_TOO_LONG"              | HTTP/1.1 **RFC 7231**, Seção 6.5.12                                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "415"   | "UNSUPPORTED_MEDIA_TYPE"            | HTTP/1.1 **RFC 7231**, Seção 6.5.13                                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "416"   | "REQUESTED_RANGE_NOT_SATISFIABLE"   | Alcance de Requisições HTTP/1.1 **RFC 7233**, Seção 4.4                         |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "417"   | "EXPECTATION_FAILED"                | HTTP/1.1 **RFC 7231**, Seção 6.5.14                                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "418"   | "IM_A_TEAPOT"                       | HTCPCP/1.0 **RFC 2324**, Seção 2.3.2                                            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "421"   | "MISDIRECTED_REQUEST"               | HTTP/2 **RFC 7540**, Seção 9.1.2                                                |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "422"   | "UNPROCESSABLE_ENTITY"              | WebDAV **RFC 4918**, Section 11.2                                               |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "423"   | "LOCKED"                            | WebDAV **RFC 4918**, Seção 11.3                                                 |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "424"   | "FAILED_DEPENDENCY"                 | WebDAV **RFC 4918**, Seção 11.4                                                 |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "425"   | "TOO_EARLY"                         | Usando dados antecipados em HTTP **RFC 8470**                                   |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "426"   | "UPGRADE_REQUIRED"                  | HTTP/1.1 **RFC 7231**, Seção 6.5.15                                             |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "428"   | "PRECONDITION_REQUIRED"             | Códigos de Status HTTP Adicionais **RFC 6585**                                  |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "429"   | "TOO_MANY_REQUESTS"                 | Códigos de Status HTTP Adicionais **RFC 6585**                                  |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "431"   | "REQUEST_HEADER_FIELDS_TOO_LARGE"   | Códigos de Status HTTP Adicionais **RFC 6585**                                  |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "451"   | "UNAVAILABLE_FOR_LEGAL_REASONS"     | Um Código de Status HTTP para Relatar Obstáculos Legais **RFC 7725**            |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "500"   | "INTERNAL_SERVER_ERROR"             | HTTP/1.1 **RFC 7231**, Seção 6.6.1                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "501"   | "NOT_IMPLEMENTED"                   | HTTP/1.1 **RFC 7231**, Seção 6.6.2                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "502"   | "BAD_GATEWAY"                       | HTTP/1.1 **RFC 7231**, Seção 6.6.3                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "503"   | "SERVICE_UNAVAILABLE"               | HTTP/1.1 **RFC 7231**, Seção 6.6.4                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "504"   | "GATEWAY_TIMEOUT"                   | HTTP/1.1 **RFC 7231**, Seção 6.6.5                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "505"   | "HTTP_VERSION_NOT_SUPPORTED"        | HTTP/1.1 **RFC 7231**, Seção 6.6.6                                              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "506"   | "VARIANT_ALSO_NEGOTIATES"           | Negociação Transparente de Conteúdo em HTTP **RFC 2295**, Seção 8.1             |
|         |                                     | (Experimental)                                                                  |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "507"   | "INSUFFICIENT_STORAGE"              | WebDAV **RFC 4918**, Seção 11.5                                                 |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "508"   | "LOOP_DETECTED"                     | Extensões de Ligação WebDAV **RFC 5842**, Seção 7.2 (Experimental)              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "510"   | "NOT_EXTENDED"                      | Um Framework de Extensão HTTP **RFC 2774**, Seção 7 (Experimental)              |
+---------+-------------------------------------+---------------------------------------------------------------------------------+
| "511"   | "NETWORK_AUTHENTICATION_REQUIRED"   | Códigos de Status HTTP Adicionais **RFC 6585**, Seção 6                         |
+---------+-------------------------------------+---------------------------------------------------------------------------------+

Para preservar compatibilidade anterior, valores de enumerações também
estão presentes no módulo "http.client" na forma de constantes. O nome
da enumeração é igual ao nome da constante (i.e. "http.HTTPStatus.OK"
também está disponível como "http.client.OK").

Alterado na versão 3.7: Código de status "421 MISDIRECTED_REQUEST"
adicionado.

Novo na versão 3.8: Código de status "451
UNAVAILABLE_FOR_LEGAL_REASONS" adicionado.

Novo na versão 3.9: Adicionados os códigos de status "103
EARLY_HINTS", "418 IM_A_TEAPOT" e "425 TOO_EARLY".
