21.11. 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 niveauurllib.request
- Le module
http.server
contient des classes serveur HTTP basiques basées sursocketserver
- 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 >>> 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>, ...]
21.11.1. 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 |
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 |
REQUEST_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 |
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 |
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 |
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
.