Python http status codes

21.11. http — HTTP modules¶

http is a package that collects several modules for working with the HyperText Transfer Protocol:

  • http.client is a low-level HTTP protocol client; for high-level URL opening use urllib.request
  • http.server contains basic HTTP server classes based on socketserver
  • http.cookies has utilities for implementing state management with cookies
  • http.cookiejar provides persistence of cookies

http is also a module that defines a number of HTTP status codes and associated messages through the http.HTTPStatus enum:

A subclass of enum.IntEnum that defines a set of HTTP status codes, reason phrases and long descriptions written in English.

>>> from http import HTTPStatus >>> HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> http.HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list(HTTPStatus) [, , . ] 

21.11.1. HTTP status codes¶

Supported, IANA-registered status codes available in http.HTTPStatus are:

Code Enum Name Details
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 (Experimental)
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 (Experimental)
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
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
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 (Experimental)
507 INSUFFICIENT_STORAGE WebDAV RFC 4918, Section 11.5
508 LOOP_DETECTED WebDAV Binding Extensions RFC 5842, Section 7.2 (Experimental)
510 NOT_EXTENDED An HTTP Extension Framework RFC 2774, Section 7 (Experimental)
511 NETWORK_AUTHENTICATION_REQUIRED Additional HTTP Status Codes RFC 6585, Section 6

In order to preserve backwards compatibility, enum values are also present in the http.client module in the form of constants. The enum name is equal to the constant name (i.e. http.HTTPStatus.OK is also available as http.client.OK ).

Changed in version 3.7: Added 421 MISDIRECTED_REQUEST status code.

Источник

http — HTTP modules¶

http is a package that collects several modules for working with the HyperText Transfer Protocol:

  • http.client is a low-level HTTP protocol client; for high-level URL opening use urllib.request
  • http.server contains basic HTTP server classes based on socketserver
  • http.cookies has utilities for implementing state management with cookies
  • http.cookiejar provides persistence of cookies

The http module also defines the following enums that help you work with http related code:

A subclass of enum.IntEnum that defines a set of HTTP status codes, reason phrases and long descriptions written in English.

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

Источник

http — HTTP модули¶

http — пакет, который объединяет несколько модулей для работы с протоколом передачи гипертекста:

  • http.client — клиент протокола HTTP низкого уровня; для открытия URL- адреса высокого уровня используйте urllib.request
  • http.server содержит базовые классы HTTP-серверов на основе socketserver
  • http.cookies имеет утилиты для реализации управления состоянием с помощью cookie
  • http.cookiejar обеспечивает сохранение cookie

http также является модулем, который определяет ряд кодов состояния HTTP и связанных сообщений через перечисление http.HTTPStatus :

Подкласс enum.IntEnum , определяет множество кодов состояния HTTP, фраз причины и длинных описаний, написанных на английском языке.

>>> from http import HTTPStatus >>> HTTPStatus.OK >>> HTTPStatus.OK == 200 True >>> HTTPStatus.OK.value 200 >>> HTTPStatus.OK.phrase 'OK' >>> HTTPStatus.OK.description 'Request fulfilled, document follows' >>> list(HTTPStatus) [, , . ] 

Коды состояния HTTP¶

Поддерживаются коды состояния IANA-registered, доступные в http.HTTPStatus :

Код Перечисление имён Подробности
100 CONTINUE HTTP/1.1 RFC 7231, Раздел 6.2.1
101 SWITCHING_PROTOCOLS HTTP/1.1 RFC 7231, Раздел 6.2.2
102 PROCESSING WebDAV RFC 2518, Раздел 10.1
200 OK HTTP/1.1 RFC 7231, Раздел 6.3.1
201 CREATED HTTP/1.1 RFC 7231, Раздел 6.3.2
202 ACCEPTED HTTP/1.1 RFC 7231, Раздел 6.3.3
203 NON_AUTHORITATIVE_INFORMATION HTTP/1.1 RFC 7231, Раздел 6.3.4
204 NO_CONTENT HTTP/1.1 RFC 7231, Раздел 6.3.5
205 RESET_CONTENT HTTP/1.1 RFC 7231, Раздел 6.3.6
206 PARTIAL_CONTENT HTTP/1.1 RFC 7233, Раздел 4.1
207 MULTI_STATUS WebDAV RFC 4918, Раздел 11.1
208 ALREADY_REPORTED Расширения привязки WebDAV RFC 5842, Раздел 7.1 (Экспериментальный)
226 IM_USED Дельта-кодирование в HTTP RFC 3229, Раздел 10.4.1
300 MULTIPLE_CHOICES HTTP/1.1 RFC 7231, Раздел 6.4.1
301 MOVED_PERMANENTLY HTTP/1.1 RFC 7231, Раздел 6.4.2
302 FOUND HTTP/1.1 RFC 7231, Раздел 6.4.3
303 SEE_OTHER HTTP/1.1 RFC 7231, Раздел 6.4.4
304 NOT_MODIFIED HTTP/1.1 RFC 7232, Раздел 4.1
305 USE_PROXY HTTP/1.1 RFC 7231, Раздел 6.4.5
307 TEMPORARY_REDIRECT HTTP/1.1 RFC 7231, Раздел 6.4.7
308 PERMANENT_REDIRECT Постоянное перенаправление RFC 7238, Раздел 3 (Экспериментальный)
400 BAD_REQUEST HTTP/1.1 RFC 7231, Раздел 6.5.1
401 UNAUTHORIZED HTTP/1.1 Идентификация RFC 7235, Раздел 3.1
402 PAYMENT_REQUIRED HTTP/1.1 RFC 7231, Раздел 6.5.2
403 FORBIDDEN HTTP/1.1 RFC 7231, Раздел 6.5.3
404 NOT_FOUND HTTP/1.1 RFC 7231, Раздел 6.5.4
405 METHOD_NOT_ALLOWED HTTP/1.1 RFC 7231, Раздел 6.5.5
406 NOT_ACCEPTABLE HTTP/1.1 RFC 7231, Раздел 6.5.6
407 PROXY_AUTHENTICATION_REQUIRED HTTP/1.1 Идентификация RFC 7235, Раздел 3.2
408 REQUEST_TIMEOUT HTTP/1.1 RFC 7231, Раздел 6.5.7
409 CONFLICT HTTP/1.1 RFC 7231, Раздел 6.5.8
410 GONE HTTP/1.1 RFC 7231, Раздел 6.5.9
411 LENGTH_REQUIRED HTTP/1.1 RFC 7231, Раздел 6.5.10
412 PRECONDITION_FAILED HTTP/1.1 RFC 7232, Раздел 4.2
413 REQUEST_ENTITY_TOO_LARGE HTTP/1.1 RFC 7231, Раздел 6.5.11
414 REQUEST_URI_TOO_LONG HTTP/1.1 RFC 7231, Раздел 6.5.12
415 UNSUPPORTED_MEDIA_TYPE HTTP/1.1 RFC 7231, Раздел 6.5.13
416 REQUESTED_RANGE_NOT_SATISFIABLE HTTP/1.1 Диапазон запросов RFC 7233, Раздел 4.4
417 EXPECTATION_FAILED HTTP/1.1 RFC 7231, Раздел 6.5.14
421 MISDIRECTED_REQUEST HTTP/2 RFC 7540, Раздел 9.1.2
422 UNPROCESSABLE_ENTITY WebDAV RFC 4918, Раздел 11.2
423 LOCKED WebDAV RFC 4918, Раздел 11.3
424 FAILED_DEPENDENCY WebDAV RFC 4918, Раздел 11.4
426 UPGRADE_REQUIRED HTTP/1.1 RFC 7231, Раздел 6.5.15
428 PRECONDITION_REQUIRED Дополнительные Коды состояния HTTP RFC 6585
429 TOO_MANY_REQUESTS Дополнительные Коды состояния HTTP RFC 6585
431 REQUEST_HEADER_FIELDS_TOO_LARGE Дополнительные Коды состояния HTTP RFC 6585
451 UNAVAILABLE_FOR_LEGAL_REASONS Код состояния HTTP для сообщения о юридических препятствиях RFC 7725
500 INTERNAL_SERVER_ERROR HTTP/1.1 RFC 7231, Раздел 6.6.1
501 NOT_IMPLEMENTED HTTP/1.1 RFC 7231, Раздел 6.6.2
502 BAD_GATEWAY HTTP/1.1 RFC 7231, Раздел 6.6.3
503 SERVICE_UNAVAILABLE HTTP/1.1 RFC 7231, Раздел 6.6.4
504 GATEWAY_TIMEOUT HTTP/1.1 RFC 7231, Раздел 6.6.5
505 HTTP_VERSION_NOT_SUPPORTED HTTP/1.1 RFC 7231, Раздел 6.6.6
506 VARIANT_ALSO_NEGOTIATES Прозрачное согласование содержимого в HTTP RFC 2295, Раздел 8.1 (Экспериментальный)
507 INSUFFICIENT_STORAGE WebDAV RFC 4918, Раздел 11.5
508 LOOP_DETECTED Расширения привязки WebDAV RFC 5842, Раздел 7.2 (Экспериментальный)
510 NOT_EXTENDED Фреймворк расширения HTTP RFC 2774, Раздел 7 (Экспериментальный)
511 NETWORK_AUTHENTICATION_REQUIRED Дополнительные Коды состояния HTTP RFC 6585, Раздел 6

Чтобы сохранить обратную совместимость, значения перечисления также присутствуют в модуле http.client в виде констант. Имя перечисления равно имени константы (т. е. http.HTTPStatus.OK также доступно как http.client.OK ).

Изменено в версии 3.7: Добавлен код состояния 421 MISDIRECTED_REQUEST .

Добавлено в версии 3.8: Добавлен код состояния 451 UNAVAILABLE_FOR_LEGAL_REASONS .

Источник

Responses: Status Codes

Chris Bailey

What are HTTP status codes? Which status codes do exist? These questions are answered in this lesson of the Making HTTP Requests With Python course. You’ll learn about the different status code ranges and what they mean internally. Additionally, you’ll learn how to handle different status codes in multiple ways, e.g. by using if -statements or try-except -blocks.

balakumaranrk on Feb. 8, 2020

In this video what is the purpose of writing :

Ricky White RP Team on Feb. 8, 2020

This is used so that no exception is raised on a successful request. This will allow you to capture unsuccessful requests based on the exception type returned and deal with them accordingly.

idosegev on Feb. 12, 2020

I don’t get any response from my if-elif loop and i don’t know why. maybe it has to do with python38 ?

url = ‘api.github.com‘ response = requests.get(url)

if response.status_code == 202: print(‘Success!’) elif response.status_code == 404: print(‘Not Found.’)

Chris Bailey RP Team on Feb. 12, 2020

There are a couple of differences from your code in the comment you posted and the example in the video lesson:

The url should be url = ‘http://api.github.com’ The first if should be if response.status_code == 200: and not 202 . 200 would mean success and 202 would mean something different, accepted. Because the code I’m demonstrating is an incomplete example, I don’t have a fall back of else: which would catch some other result. I guess you could have it print the response, such as else: print(f’Status Code was ‘)

Using an f string. I hope this helps with your question.

idosegev on Feb. 13, 2020

@Chris Bailey thanks for the quick response!

B S K Karthik on April 19, 2020

@Chris Bailey, Hi Chris Can you please let me know what color theme have you used in visual studio code editor. Thank you.

Chris Bailey RP Team on April 19, 2020

Hi @B S K Karthik, I use Dainty — Material Theme Ocean, in VSCode. Its part of the Dainty theme package. I love the contrast.

B S K Karthik on April 20, 2020

Источник

Читайте также:  Show and hide text css
Оцените статью