http --- ماژولهای HTTP¶
کد منبع: Lib/http/__init__.py
http بستهای است که چندین ماژول برای کار با پروتکل انتقال ابرمتن را گردآوری میکند:
http.clientیک کلاینت سطح پایین برای پروتکل HTTP است؛ برای باز کردن URL در سطح بالا ازurllib.requestاستفاده کنیدhttp.serverشامل کلاسهای سرور HTTP پایه، مبتنی برsocketserverاستhttp.cookiesابزارهایی برای پیادهسازی مدیریت وضعیت با کوکیها فراهم میکندhttp.cookiejarماندگاری کوکیها را فراهم میکند
ماژول http همچنین شمارشیهای زیر (enums) را تعریف میکند که به شما در کار با کد مرتبط با http کمک میکنند:
- class http.HTTPStatus¶
اضافه شده در نسخهی 3.5.
یک زیرکلاس از
enum.IntEnumکه مجموعهای از کدهای وضعیت HTTP، عبارات دلیل و توضیحات طولانی نوشتهشده به انگلیسی را تعریف میکند.استفاده:
>>> 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¶
کدهای وضعیت پشتیبانیشده و ثبتشده در IANA موجود در http.HTTPStatus عبارتند از:
کد |
نام Enum |
جزئیات |
|---|---|---|
|
|
معانی HTTP RFC 9110، بخش 15.2.1 |
|
|
معانی HTTP RFC 9110، بخش ۱۵.۲.۲ |
|
|
WebDAV RFC 2518، بخش ۱۰.۱ |
|
|
کد وضعیت HTTP برای نشاندادن اشارهها RFC 8297 |
|
|
معناشناسی HTTP RFC 9110، بخش 15.3.1 |
|
|
HTTP Semantics RFC 9110، بخش 15.3.2 |
|
|
معانی HTTP RFC 9110، بخش 15.3.3 |
|
|
HTTP Semantics RFC 9110، بخش 15.3.4 |
|
|
HTTP Semantics RFC 9110، بخش 15.3.5 |
|
|
معانی HTTP RFC 9110، بخش 15.3.6 |
|
|
معناشناسی HTTP RFC 9110، بخش ۱۵.۳.۷ |
|
|
WebDAV RFC 4918، بخش ۱۱.۱ |
|
|
افزونههای پیوند WebDAV RFC 5842، بخش ۷.۱ (آزمایشی) |
|
|
کدگذاری دلتا (Delta Encoding) در HTTP RFC 3229، بخش 10.4.1 |
|
|
معانی HTTP RFC 9110، بخش ۱۵.۴.۱ |
|
|
HTTP Semantics RFC 9110، بخش 15.4.2 |
|
|
معناشناسی HTTP RFC 9110، بخش ۱۵.۴.۳ |
|
|
HTTP Semantics RFC 9110، بخش 15.4.4 |
|
|
معانی HTTP RFC 9110، بخش 15.4.5 |
|
|
معناشناسی HTTP RFC 9110، بخش 15.4.6 |
|
|
HTTP Semantics RFC 9110، بخش 15.4.8 |
|
|
HTTP Semantics RFC 9110، بخش 15.4.9 |
|
|
HTTP Semantics RFC 9110، بخش 15.5.1 |
|
|
معناشناسی HTTP RFC 9110، بخش 15.5.2 |
|
|
HTTP Semantics RFC 9110، بخش 15.5.3 |
|
|
HTTP Semantics RFC 9110، بخش 15.5.4 |
|
|
معانی HTTP RFC 9110، بخش 15.5.5 |
|
|
HTTP Semantics RFC 9110، بخش 15.5.6 |
|
|
معانی HTTP RFC 9110، بخش ۱۵.۵.۷ |
|
|
HTTP Semantics RFC 9110، بخش 15.5.8 |
|
|
معانی HTTP RFC 9110، بخش 15.5.9 |
|
|
معانی HTTP RFC 9110، بخش 15.5.10 |
|
|
معناشناسی HTTP RFC 9110، بخش 15.5.11 |
|
|
HTTP Semantics RFC 9110، بخش 15.5.12 |
|
|
معناشناسی HTTP RFC 9110، بخش 15.5.13 |
|
|
HTTP Semantics RFC 9110، بخش 15.5.14 |
|
|
HTTP Semantics RFC 9110، بخش 15.5.15 |
|
|
HTTP Semantics RFC 9110، بخش 15.5.16 |
|
|
معانی HTTP RFC 9110، بخش 15.5.17 |
|
|
معناشناسی HTTP RFC 9110، بخش 15.5.18 |
|
|
HTCPCP/1.0 RFC 2324، بخش 2.3.2 |
|
|
HTTP Semantics RFC 9110، بخش 15.5.20 |
|
|
معانی HTTP RFC 9110، بخش 15.5.21 |
|
|
WebDAV RFC 4918، بخش ۱۱.۳ |
|
|
WebDAV RFC 4918، بخش 11.4 |
|
|
استفاده از داده زودهنگام در HTTP RFC 8470 |
|
|
معانی HTTP RFC 9110، بخش 15.5.22 |
|
|
کدهای وضعیت HTTP بیشتر RFC 6585 |
|
|
کدهای وضعیت HTTP بیشتر RFC 6585 |
|
|
کدهای وضعیت HTTP بیشتر RFC 6585 |
|
|
کد وضعیت HTTP برای گزارش موانع قانونی RFC 7725 |
|
|
HTTP Semantics RFC 9110، بخش 15.6.1 |
|
|
HTTP Semantics RFC 9110، بخش 15.6.2 |
|
|
معناشناسی HTTP RFC 9110، بخش 15.6.3 |
|
|
HTTP Semantics RFC 9110، بخش 15.6.4 |
|
|
معانی HTTP RFC 9110، بخش 15.6.5 |
|
|
معانی HTTP RFC 9110، بخش 15.6.6 |
|
|
مذاکره شفاف محتوا در HTTP RFC 2295، بخش 8.1 (آزمایشی) |
|
|
WebDAV RFC 4918، بخش ۱۱.۵ |
|
|
افزونههای مقیدسازی WebDAV RFC 5842، بخش ۷.۲ (آزمایشی) |
|
|
یک چارچوب توسعهی HTTP RFC 2774، بخش ۷ (آزمایشی) |
|
|
کدهای وضعیت HTTP بیشتر RFC 6585، بخش ۶ |
برای حفظ سازگاری با نسخههای پیشین، مقادیر enum در قالب ثابتها در ماژول http.client نیز موجود هستند. نام enum برابر با نام ثابت است (یعنی http.HTTPStatus.OK بهعنوان http.client.OK نیز در دسترس است).
تغییر یافته در نسخهی 3.7: کد وضعیت 421 MISDIRECTED_REQUEST افزوده شد.
اضافه شده در نسخهی 3.8: کد وضعیت 451 UNAVAILABLE_FOR_LEGAL_REASONS اضافه شد.
اضافه شده در نسخهی 3.9: کدهای وضعیت 103 EARLY_HINTS، 418 IM_A_TEAPOT و 425 TOO_EARLY افزوده شدند.
تغییر یافته در نسخهی 3.13: نامگذاری RFC9110 برای ثابتهای وضعیت پیادهسازی شد. نامهای قدیمی ثابتها برای سازگاری با نسخههای قبلی حفظ شدهاند: 413 REQUEST_ENTITY_TOO_LARGE، 414 REQUEST_URI_TOO_LONG، 416 REQUESTED_RANGE_NOT_SATISFIABLE و 422 UNPROCESSABLE_ENTITY.
دسته وضعیت HTTP¶
اضافه شده در نسخهی 3.12.
مقادیر enum چندین ویژگی برای نشان دادن دستهی وضعیت HTTP دارند:
ویژگی |
نشان میدهد که |
جزئیات |
|---|---|---|
|
|
معناشناسی HTTP RFC 9110، بخش ۱۵ |
|
|
معناشناسی HTTP RFC 9110، بخش ۱۵ |
|
|
معناشناسی HTTP RFC 9110، بخش ۱۵ |
|
|
معناشناسی HTTP RFC 9110، بخش ۱۵ |
|
|
معناشناسی HTTP RFC 9110، بخش ۱۵ |
استفاده:
>>> from http import HTTPStatus >>> HTTPStatus.OK.is_success True >>> HTTPStatus.OK.is_client_error False
- class http.HTTPMethod¶
اضافه شده در نسخهی 3.11.
زیرکلاسی از
enum.StrEnumکه مجموعهای از متدهای HTTP و توضیحات نوشتهشده به زبان انگلیسی را تعریف میکند.استفاده:
>>> 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>]
متدهای HTTP¶
متدهای پشتیبانیشده و متدهای ثبتشده در IANA موجود در http.HTTPMethod عبارتند از:
متد |
نام Enum |
جزئیات |
|---|---|---|
|
|
معناشناسی HTTP RFC 9110، بخش ۹.۳.۱ |
|
|
HTTP Semantics RFC 9110، بخش ۹.۳.۲ |
|
|
HTTP Semantics RFC 9110، بخش 9.3.3 |
|
|
HTTP Semantics RFC 9110، بخش 9.3.4 |
|
|
HTTP Semantics RFC 9110، بخش 9.3.5 |
|
|
HTTP Semantics RFC 9110، بخش 9.3.6 |
|
|
معناشناسی HTTP RFC 9110، بخش 9.3.7 |
|
|
HTTP Semantics RFC 9110، بخش 9.3.8 |
|
|
HTTP/1.1 RFC 5789 |