http
— HTTP modules¶
Código fuente: Lib/http/__init__.py
http
es un paquete que recopila varios módulos para trabajar con el Protocolo de transferencia de hipertexto:
http.client
es un cliente del protocolo HTTP de bajo nivel; para la apertura de URL de alto nivel useurllib.request
http.server
contiene clases de servidor HTTP básicas basadas ensocketserver
http.cookies
tiene utilidades para implementar la gestión de estados mediante cookieshttp.cookiejar
provee persistencia de cookies
El módulo http
también define las siguientes enumeraciones que lo ayudan a trabajar con código relacionado con http:
- class http.HTTPStatus¶
Added in version 3.5.
Una subclase de
enum.IntEnum
que define un conjunto de códigos de estado HTTP, frases de motivo y descripciones largas escritas en inglés.Uso:
>>> from http import HTTPStatus >>> HTTPStatus.OK HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list(HTTPStatus) [HTTPStatus.CONTINUE, HTTPStatus.SWITCHING_PROTOCOLS, ...]
Códigos de estado HTTP¶
Los códigos de estado registrados por IANA disponibles en http.HTTPStatus
son:
Código |
Nombre de la enumeración |
Detalle |
---|---|---|
|
|
HTTP/1.1 RFC 7231, Sección 6.2.1 |
|
|
HTTP/1.1 RFC 7231, Sección 6.2.2 |
|
|
WebDAV RFC 2518, Sección 10.1 |
|
|
Un código de estado HTTP para indicar pistas RFC 8297 |
|
|
HTTP/1.1 RFC 7231, Sección 6.3.1 |
|
|
HTTP/1.1 RFC 7231, Sección 6.3.2 |
|
|
HTTP/1.1 RFC 7231, Sección 6.3.3 |
|
|
HTTP/1.1 RFC 7231, Sección 6.3.4 |
|
|
HTTP/1.1 RFC 7231, Sección 6.3.5 |
|
|
HTTP/1.1 RFC 7231, Sección 6.3.6 |
|
|
HTTP/1.1 RFC 7233, Sección 4.1 |
|
|
WebDAV RFC 4918, Sección 11.1 |
|
|
Extensiones de enlace a WebDAV RFC 5842, Sección 7.1 (Experimental) |
|
|
Codificación delta en HTTP RFC 3229, Sección 10.4.1 |
|
|
HTTP/1.1 RFC 7231, Sección 6.4.1 |
|
|
HTTP/1.1 RFC 7231, Sección 6.4.2 |
|
|
HTTP/1.1 RFC 7231, Sección 6.4.3 |
|
|
HTTP/1.1 RFC 7231, Sección 6.4.4 |
|
|
HTTP/1.1 RFC 7232, Sección 4.1 |
|
|
HTTP/1.1 RFC 7231, Sección 6.4.5 |
|
|
HTTP/1.1 RFC 7231, Sección 6.4.7 |
|
|
Redirección permanente RFC 7238, Sección 3 (Experimental) |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.1 |
|
|
Autentificación HTTP/1.1 RFC 7235, Sección 3.1 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.2 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.3 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.4 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.5 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.6 |
|
|
Autenticación HTTP/1.1 RFC 7235, Sección 3.2 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.7 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.8 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.9 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.10 |
|
|
HTTP/1.1 RFC 7232, Sección 4.2 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.11 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.12 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.13 |
|
|
Rango de solicitudes HTTP/1.1 RFC 7233, Sección 4.4 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.14 |
|
|
HTCPCP/1.0 RFC 2324, Sección 2.3.2 |
|
|
HTTP/2 RFC 7540, Sección 9.1.2 |
|
|
WebDAV RFC 4918, Sección 11.2 |
|
|
WebDAV RFC 4918, Sección 11.3 |
|
|
WebDAV RFC 4918, Sección 11.4 |
|
|
Uso de datos iniciales en HTTP RFC 8470 |
|
|
HTTP/1.1 RFC 7231, Sección 6.5.15 |
|
|
Códigos de estados HTTP adicionales RFC 6585 |
|
|
Códigos de estados HTTP adicionales RFC 6585 |
|
|
Códigos de estados HTTP adicionales RFC 6585 |
|
|
Un código de estado HTTP para reportar obstáculos legales RFC 7725 |
|
|
HTTP/1.1 RFC 7231, Sección 6.6.1 |
|
|
HTTP/1.1 RFC 7231, Sección 6.6.2 |
|
|
HTTP/1.1 RFC 7231, Sección 6.6.3 |
|
|
HTTP/1.1 RFC 7231, Sección 6.6.4 |
|
|
HTTP/1.1 RFC 7231, Sección 6.6.5 |
|
|
HTTP/1.1 RFC 7231, Sección 6.6.6 |
|
|
Negociación transparente de contenido en HTTP RFC 2295, Sección 8.1 (Experimental) |
|
|
WebDAV RFC 4918, Sección 11.5 |
|
|
Extensiones de unión WebDAV RFC 5842, Sección 7.2 (Experimental) |
|
|
Un framework de extensión HTTP RFC 2774, Sección 7 (Experimental) |
|
|
Códigos de estados HTTP adicionales RFC 6585, Sección 6 |
Con el fin de preservar la compatibilidad con versiones anteriores, los valores de la enumeración están también presentes en el módulo http.client
en forma de constantes. El nombre de la enumeración es el mismo que el nombre de la constante (ej. http.HTTPStatus.OK
se encuentra también disponible como http.client.OK
).
Distinto en la versión 3.7: Se agregó el código de estado 421 MISDIRECTED_REQUEST
.
Added in version 3.8: Se agregó el código de estado 451 UNAVAILABLE_FOR_LEGAL_REASONS
.
Added in version 3.9: Agregados códigos de estado 103 EARLY_HINTS
, 418 IM_A_TEAPOT
y 425 TOO_EARLY
.
Categoría de estado HTTP¶
Added in version 3.12.
Los valores enum tienen varias propiedades para indicar la categoría de estado HTTP:
Propiedad |
Indica que |
Detalle |
---|---|---|
|
|
HTTP/1.1 RFC 7231, Sección 6 |
|
|
HTTP/1.1 RFC 7231, Sección 6 |
|
|
HTTP/1.1 RFC 7231, Sección 6 |
|
|
HTTP/1.1 RFC 7231, Sección 6 |
|
|
HTTP/1.1 RFC 7231, Sección 6 |
Uso:
>>> from http import HTTPStatus >>> HTTPStatus.OK.is_success True >>> HTTPStatus.OK.is_client_error False
- class http.HTTPMethod¶
Added in version 3.11.
Una subclase de
enum.StrEnum
que define un conjunto de métodos HTTP y sus descripciones escritas en inglés.Uso:
>>> from http import HTTPMethod >>> >>> HTTPMethod.GET <HTTPMethod.GET> >>> HTTPMethod.GET == 'GET' True >>> HTTPMethod.GET.value 'GET' >>> HTTPMethod.GET.description 'Retrieve the target.' >>> list(HTTPMethod) [<HTTPMethod.CONNECT>, <HTTPMethod.DELETE>, <HTTPMethod.GET>, <HTTPMethod.HEAD>, <HTTPMethod.OPTIONS>, <HTTPMethod.PATCH>, <HTTPMethod.POST>, <HTTPMethod.PUT>, <HTTPMethod.TRACE>]
Métodos HTTP¶
Los métodos registrados por IANA disponibles en http.HTTPMethod
son:
Método |
Nombre de la enumeración |
Detalle |
---|---|---|
|
|
HTTP/1.1 RFC 7231, Section 4.3.1 |
|
|
HTTP/1.1 RFC 7231, Section 4.3.2 |
|
|
HTTP/1.1 RFC 7231, Section 4.3.3 |
|
|
HTTP/1.1 RFC 7231, Section 4.3.4 |
|
|
HTTP/1.1 RFC 7231, Section 4.3.5 |
|
|
HTTP/1.1 RFC 7231, Section 4.3.6 |
|
|
HTTP/1.1 RFC 7231, Section 4.3.7 |
|
|
HTTP/1.1 RFC 7231, Section 4.3.8 |
|
|
HTTP/1.1 RFC 5789 |