17db96d56Sopenharmony_ci:mod:`http` --- HTTP modules 27db96d56Sopenharmony_ci============================ 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci.. module:: http 57db96d56Sopenharmony_ci :synopsis: HTTP status codes and messages 67db96d56Sopenharmony_ci 77db96d56Sopenharmony_ci**Source code:** :source:`Lib/http/__init__.py` 87db96d56Sopenharmony_ci 97db96d56Sopenharmony_ci.. index:: 107db96d56Sopenharmony_ci pair: HTTP; protocol 117db96d56Sopenharmony_ci single: HTTP; http (standard module) 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_ci-------------- 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_ci:mod:`http` is a package that collects several modules for working with the 167db96d56Sopenharmony_ciHyperText Transfer Protocol: 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_ci* :mod:`http.client` is a low-level HTTP protocol client; for high-level URL 197db96d56Sopenharmony_ci opening use :mod:`urllib.request` 207db96d56Sopenharmony_ci* :mod:`http.server` contains basic HTTP server classes based on :mod:`socketserver` 217db96d56Sopenharmony_ci* :mod:`http.cookies` has utilities for implementing state management with cookies 227db96d56Sopenharmony_ci* :mod:`http.cookiejar` provides persistence of cookies 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_ciThe :mod:`http` module also defines the following enums that help you work with http related code: 267db96d56Sopenharmony_ci 277db96d56Sopenharmony_ci.. class:: HTTPStatus 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ci .. versionadded:: 3.5 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ci A subclass of :class:`enum.IntEnum` that defines a set of HTTP status codes, 327db96d56Sopenharmony_ci reason phrases and long descriptions written in English. 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci Usage:: 357db96d56Sopenharmony_ci 367db96d56Sopenharmony_ci >>> from http import HTTPStatus 377db96d56Sopenharmony_ci >>> HTTPStatus.OK 387db96d56Sopenharmony_ci HTTPStatus.OK 397db96d56Sopenharmony_ci >>> HTTPStatus.OK == 200 407db96d56Sopenharmony_ci True 417db96d56Sopenharmony_ci >>> HTTPStatus.OK.value 427db96d56Sopenharmony_ci 200 437db96d56Sopenharmony_ci >>> HTTPStatus.OK.phrase 447db96d56Sopenharmony_ci 'OK' 457db96d56Sopenharmony_ci >>> HTTPStatus.OK.description 467db96d56Sopenharmony_ci 'Request fulfilled, document follows' 477db96d56Sopenharmony_ci >>> list(HTTPStatus) 487db96d56Sopenharmony_ci [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...] 497db96d56Sopenharmony_ci 507db96d56Sopenharmony_ci.. _http-status-codes: 517db96d56Sopenharmony_ci 527db96d56Sopenharmony_ciHTTP status codes 537db96d56Sopenharmony_ci----------------- 547db96d56Sopenharmony_ci 557db96d56Sopenharmony_ciSupported, 567db96d56Sopenharmony_ci`IANA-registered status codes <https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml>`_ 577db96d56Sopenharmony_ciavailable in :class:`http.HTTPStatus` are: 587db96d56Sopenharmony_ci 597db96d56Sopenharmony_ci======= =================================== ================================================================== 607db96d56Sopenharmony_ciCode Enum Name Details 617db96d56Sopenharmony_ci======= =================================== ================================================================== 627db96d56Sopenharmony_ci``100`` ``CONTINUE`` HTTP/1.1 :rfc:`7231`, Section 6.2.1 637db96d56Sopenharmony_ci``101`` ``SWITCHING_PROTOCOLS`` HTTP/1.1 :rfc:`7231`, Section 6.2.2 647db96d56Sopenharmony_ci``102`` ``PROCESSING`` WebDAV :rfc:`2518`, Section 10.1 657db96d56Sopenharmony_ci``103`` ``EARLY_HINTS`` An HTTP Status Code for Indicating Hints :rfc:`8297` 667db96d56Sopenharmony_ci``200`` ``OK`` HTTP/1.1 :rfc:`7231`, Section 6.3.1 677db96d56Sopenharmony_ci``201`` ``CREATED`` HTTP/1.1 :rfc:`7231`, Section 6.3.2 687db96d56Sopenharmony_ci``202`` ``ACCEPTED`` HTTP/1.1 :rfc:`7231`, Section 6.3.3 697db96d56Sopenharmony_ci``203`` ``NON_AUTHORITATIVE_INFORMATION`` HTTP/1.1 :rfc:`7231`, Section 6.3.4 707db96d56Sopenharmony_ci``204`` ``NO_CONTENT`` HTTP/1.1 :rfc:`7231`, Section 6.3.5 717db96d56Sopenharmony_ci``205`` ``RESET_CONTENT`` HTTP/1.1 :rfc:`7231`, Section 6.3.6 727db96d56Sopenharmony_ci``206`` ``PARTIAL_CONTENT`` HTTP/1.1 :rfc:`7233`, Section 4.1 737db96d56Sopenharmony_ci``207`` ``MULTI_STATUS`` WebDAV :rfc:`4918`, Section 11.1 747db96d56Sopenharmony_ci``208`` ``ALREADY_REPORTED`` WebDAV Binding Extensions :rfc:`5842`, Section 7.1 (Experimental) 757db96d56Sopenharmony_ci``226`` ``IM_USED`` Delta Encoding in HTTP :rfc:`3229`, Section 10.4.1 767db96d56Sopenharmony_ci``300`` ``MULTIPLE_CHOICES`` HTTP/1.1 :rfc:`7231`, Section 6.4.1 777db96d56Sopenharmony_ci``301`` ``MOVED_PERMANENTLY`` HTTP/1.1 :rfc:`7231`, Section 6.4.2 787db96d56Sopenharmony_ci``302`` ``FOUND`` HTTP/1.1 :rfc:`7231`, Section 6.4.3 797db96d56Sopenharmony_ci``303`` ``SEE_OTHER`` HTTP/1.1 :rfc:`7231`, Section 6.4.4 807db96d56Sopenharmony_ci``304`` ``NOT_MODIFIED`` HTTP/1.1 :rfc:`7232`, Section 4.1 817db96d56Sopenharmony_ci``305`` ``USE_PROXY`` HTTP/1.1 :rfc:`7231`, Section 6.4.5 827db96d56Sopenharmony_ci``307`` ``TEMPORARY_REDIRECT`` HTTP/1.1 :rfc:`7231`, Section 6.4.7 837db96d56Sopenharmony_ci``308`` ``PERMANENT_REDIRECT`` Permanent Redirect :rfc:`7238`, Section 3 (Experimental) 847db96d56Sopenharmony_ci``400`` ``BAD_REQUEST`` HTTP/1.1 :rfc:`7231`, Section 6.5.1 857db96d56Sopenharmony_ci``401`` ``UNAUTHORIZED`` HTTP/1.1 Authentication :rfc:`7235`, Section 3.1 867db96d56Sopenharmony_ci``402`` ``PAYMENT_REQUIRED`` HTTP/1.1 :rfc:`7231`, Section 6.5.2 877db96d56Sopenharmony_ci``403`` ``FORBIDDEN`` HTTP/1.1 :rfc:`7231`, Section 6.5.3 887db96d56Sopenharmony_ci``404`` ``NOT_FOUND`` HTTP/1.1 :rfc:`7231`, Section 6.5.4 897db96d56Sopenharmony_ci``405`` ``METHOD_NOT_ALLOWED`` HTTP/1.1 :rfc:`7231`, Section 6.5.5 907db96d56Sopenharmony_ci``406`` ``NOT_ACCEPTABLE`` HTTP/1.1 :rfc:`7231`, Section 6.5.6 917db96d56Sopenharmony_ci``407`` ``PROXY_AUTHENTICATION_REQUIRED`` HTTP/1.1 Authentication :rfc:`7235`, Section 3.2 927db96d56Sopenharmony_ci``408`` ``REQUEST_TIMEOUT`` HTTP/1.1 :rfc:`7231`, Section 6.5.7 937db96d56Sopenharmony_ci``409`` ``CONFLICT`` HTTP/1.1 :rfc:`7231`, Section 6.5.8 947db96d56Sopenharmony_ci``410`` ``GONE`` HTTP/1.1 :rfc:`7231`, Section 6.5.9 957db96d56Sopenharmony_ci``411`` ``LENGTH_REQUIRED`` HTTP/1.1 :rfc:`7231`, Section 6.5.10 967db96d56Sopenharmony_ci``412`` ``PRECONDITION_FAILED`` HTTP/1.1 :rfc:`7232`, Section 4.2 977db96d56Sopenharmony_ci``413`` ``REQUEST_ENTITY_TOO_LARGE`` HTTP/1.1 :rfc:`7231`, Section 6.5.11 987db96d56Sopenharmony_ci``414`` ``REQUEST_URI_TOO_LONG`` HTTP/1.1 :rfc:`7231`, Section 6.5.12 997db96d56Sopenharmony_ci``415`` ``UNSUPPORTED_MEDIA_TYPE`` HTTP/1.1 :rfc:`7231`, Section 6.5.13 1007db96d56Sopenharmony_ci``416`` ``REQUESTED_RANGE_NOT_SATISFIABLE`` HTTP/1.1 Range Requests :rfc:`7233`, Section 4.4 1017db96d56Sopenharmony_ci``417`` ``EXPECTATION_FAILED`` HTTP/1.1 :rfc:`7231`, Section 6.5.14 1027db96d56Sopenharmony_ci``418`` ``IM_A_TEAPOT`` HTCPCP/1.0 :rfc:`2324`, Section 2.3.2 1037db96d56Sopenharmony_ci``421`` ``MISDIRECTED_REQUEST`` HTTP/2 :rfc:`7540`, Section 9.1.2 1047db96d56Sopenharmony_ci``422`` ``UNPROCESSABLE_ENTITY`` WebDAV :rfc:`4918`, Section 11.2 1057db96d56Sopenharmony_ci``423`` ``LOCKED`` WebDAV :rfc:`4918`, Section 11.3 1067db96d56Sopenharmony_ci``424`` ``FAILED_DEPENDENCY`` WebDAV :rfc:`4918`, Section 11.4 1077db96d56Sopenharmony_ci``425`` ``TOO_EARLY`` Using Early Data in HTTP :rfc:`8470` 1087db96d56Sopenharmony_ci``426`` ``UPGRADE_REQUIRED`` HTTP/1.1 :rfc:`7231`, Section 6.5.15 1097db96d56Sopenharmony_ci``428`` ``PRECONDITION_REQUIRED`` Additional HTTP Status Codes :rfc:`6585` 1107db96d56Sopenharmony_ci``429`` ``TOO_MANY_REQUESTS`` Additional HTTP Status Codes :rfc:`6585` 1117db96d56Sopenharmony_ci``431`` ``REQUEST_HEADER_FIELDS_TOO_LARGE`` Additional HTTP Status Codes :rfc:`6585` 1127db96d56Sopenharmony_ci``451`` ``UNAVAILABLE_FOR_LEGAL_REASONS`` An HTTP Status Code to Report Legal Obstacles :rfc:`7725` 1137db96d56Sopenharmony_ci``500`` ``INTERNAL_SERVER_ERROR`` HTTP/1.1 :rfc:`7231`, Section 6.6.1 1147db96d56Sopenharmony_ci``501`` ``NOT_IMPLEMENTED`` HTTP/1.1 :rfc:`7231`, Section 6.6.2 1157db96d56Sopenharmony_ci``502`` ``BAD_GATEWAY`` HTTP/1.1 :rfc:`7231`, Section 6.6.3 1167db96d56Sopenharmony_ci``503`` ``SERVICE_UNAVAILABLE`` HTTP/1.1 :rfc:`7231`, Section 6.6.4 1177db96d56Sopenharmony_ci``504`` ``GATEWAY_TIMEOUT`` HTTP/1.1 :rfc:`7231`, Section 6.6.5 1187db96d56Sopenharmony_ci``505`` ``HTTP_VERSION_NOT_SUPPORTED`` HTTP/1.1 :rfc:`7231`, Section 6.6.6 1197db96d56Sopenharmony_ci``506`` ``VARIANT_ALSO_NEGOTIATES`` Transparent Content Negotiation in HTTP :rfc:`2295`, Section 8.1 (Experimental) 1207db96d56Sopenharmony_ci``507`` ``INSUFFICIENT_STORAGE`` WebDAV :rfc:`4918`, Section 11.5 1217db96d56Sopenharmony_ci``508`` ``LOOP_DETECTED`` WebDAV Binding Extensions :rfc:`5842`, Section 7.2 (Experimental) 1227db96d56Sopenharmony_ci``510`` ``NOT_EXTENDED`` An HTTP Extension Framework :rfc:`2774`, Section 7 (Experimental) 1237db96d56Sopenharmony_ci``511`` ``NETWORK_AUTHENTICATION_REQUIRED`` Additional HTTP Status Codes :rfc:`6585`, Section 6 1247db96d56Sopenharmony_ci======= =================================== ================================================================== 1257db96d56Sopenharmony_ci 1267db96d56Sopenharmony_ciIn order to preserve backwards compatibility, enum values are also present 1277db96d56Sopenharmony_ciin the :mod:`http.client` module in the form of constants. The enum name is 1287db96d56Sopenharmony_ciequal to the constant name (i.e. ``http.HTTPStatus.OK`` is also available as 1297db96d56Sopenharmony_ci``http.client.OK``). 1307db96d56Sopenharmony_ci 1317db96d56Sopenharmony_ci.. versionchanged:: 3.7 1327db96d56Sopenharmony_ci Added ``421 MISDIRECTED_REQUEST`` status code. 1337db96d56Sopenharmony_ci 1347db96d56Sopenharmony_ci.. versionadded:: 3.8 1357db96d56Sopenharmony_ci Added ``451 UNAVAILABLE_FOR_LEGAL_REASONS`` status code. 1367db96d56Sopenharmony_ci 1377db96d56Sopenharmony_ci.. versionadded:: 3.9 1387db96d56Sopenharmony_ci Added ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` and ``425 TOO_EARLY`` status codes. 1397db96d56Sopenharmony_ci 1407db96d56Sopenharmony_ci.. class:: HTTPMethod 1417db96d56Sopenharmony_ci 1427db96d56Sopenharmony_ci .. versionadded:: 3.11 1437db96d56Sopenharmony_ci 1447db96d56Sopenharmony_ci A subclass of :class:`enum.StrEnum` that defines a set of HTTP methods and descriptions written in English. 1457db96d56Sopenharmony_ci 1467db96d56Sopenharmony_ci Usage:: 1477db96d56Sopenharmony_ci 1487db96d56Sopenharmony_ci >>> from http import HTTPMethod 1497db96d56Sopenharmony_ci >>> 1507db96d56Sopenharmony_ci >>> HTTPMethod.GET 1517db96d56Sopenharmony_ci <HTTPMethod.GET> 1527db96d56Sopenharmony_ci >>> HTTPMethod.GET == 'GET' 1537db96d56Sopenharmony_ci True 1547db96d56Sopenharmony_ci >>> HTTPMethod.GET.value 1557db96d56Sopenharmony_ci 'GET' 1567db96d56Sopenharmony_ci >>> HTTPMethod.GET.description 1577db96d56Sopenharmony_ci 'Retrieve the target.' 1587db96d56Sopenharmony_ci >>> list(HTTPMethod) 1597db96d56Sopenharmony_ci [<HTTPMethod.CONNECT>, 1607db96d56Sopenharmony_ci <HTTPMethod.DELETE>, 1617db96d56Sopenharmony_ci <HTTPMethod.GET>, 1627db96d56Sopenharmony_ci <HTTPMethod.HEAD>, 1637db96d56Sopenharmony_ci <HTTPMethod.OPTIONS>, 1647db96d56Sopenharmony_ci <HTTPMethod.PATCH>, 1657db96d56Sopenharmony_ci <HTTPMethod.POST>, 1667db96d56Sopenharmony_ci <HTTPMethod.PUT>, 1677db96d56Sopenharmony_ci <HTTPMethod.TRACE>] 1687db96d56Sopenharmony_ci 1697db96d56Sopenharmony_ci.. _http-methods: 1707db96d56Sopenharmony_ci 1717db96d56Sopenharmony_ciHTTP methods 1727db96d56Sopenharmony_ci----------------- 1737db96d56Sopenharmony_ci 1747db96d56Sopenharmony_ciSupported, 1757db96d56Sopenharmony_ci`IANA-registered methods <https://www.iana.org/assignments/http-methods/http-methods.xhtml>`_ 1767db96d56Sopenharmony_ciavailable in :class:`http.HTTPMethod` are: 1777db96d56Sopenharmony_ci 1787db96d56Sopenharmony_ci=========== =================================== ================================================================== 1797db96d56Sopenharmony_ciMethod Enum Name Details 1807db96d56Sopenharmony_ci=========== =================================== ================================================================== 1817db96d56Sopenharmony_ci``GET`` ``GET`` HTTP/1.1 :rfc:`7231`, Section 4.3.1 1827db96d56Sopenharmony_ci``HEAD`` ``HEAD`` HTTP/1.1 :rfc:`7231`, Section 4.3.2 1837db96d56Sopenharmony_ci``POST`` ``POST`` HTTP/1.1 :rfc:`7231`, Section 4.3.3 1847db96d56Sopenharmony_ci``PUT`` ``PUT`` HTTP/1.1 :rfc:`7231`, Section 4.3.4 1857db96d56Sopenharmony_ci``DELETE`` ``DELETE`` HTTP/1.1 :rfc:`7231`, Section 4.3.5 1867db96d56Sopenharmony_ci``CONNECT`` ``CONNECT`` HTTP/1.1 :rfc:`7231`, Section 4.3.6 1877db96d56Sopenharmony_ci``OPTIONS`` ``OPTIONS`` HTTP/1.1 :rfc:`7231`, Section 4.3.7 1887db96d56Sopenharmony_ci``TRACE`` ``TRACE`` HTTP/1.1 :rfc:`7231`, Section 4.3.8 1897db96d56Sopenharmony_ci``PATCH`` ``PATCH`` HTTP/1.1 :rfc:`5789` 1907db96d56Sopenharmony_ci=========== =================================== ================================================================== 191