پیاده‌سازی HTCPCP در error418.net
 قوری در حال کار که HTCPCP-TEA را اجرا می‌کند
**پروتکل ابرمتن کنترل قوری** **قهوه** (به انگلیسی: Hyper Text Coffee Pot Control Protocol (HTCPCP)) یک پروتکل ارتباطی برای کنترل، نظارت و تشخیص قوری‌های قهوه است که در درخواست نظر شماره RFC&nbsp;2324  تعریف شده‌است و در اول آوریل سال ۱۹۹۸ به عنوان یک شوخی آوریل (دروغ ۱۳) منتشر شد. افزونه HTCPCP-TEA با عنوان RFC 7168 در تاریخ ۱ آوریل ۲۰۱۴ برای پشتیبانی از دم نوش چای در سطح وب منتشر شد که همان RFC روز اول آوریل است.

پروتکل
------

آر اف سی ۲۳۲۴ (RFC 2324) توسط لری ماسینتر نوشته شده‌است، که آن را به عنوان یک شوخی توصیف می‌کند و می‌گوید: «این پروتکل یک هدف جدی دارد و بسیاری از راه‌های گسترش نامناسب پروتکل HTTP را مشخص می‌کند.» متن توضیحات پروتکل توضیح می‌دهد که این پروتکل اصلاً جدی نیست. به عنوان مثال، اعلام می‌کند که "یک نیاز شدید، تاریک و غلیظ برای پروتکل تهیه قهوه اسپرسو وجود دارد ".

با وجود ماهیت شوخی آن، این پروتکل به صورت جزئی در اینترنت باقی مانده‌است. ویرایشگر ایمکس شامل یک برنامه کاملاً کاربردی مرتبط با این پروتکل است و تعدادی از گزارش‌های خطای عدم پشتیبانی در موزیلا مربوط به این پروتکل است. ده سال پس از انتشار HTCPCP، *کنسرسیوم قهوه تحت کنترل وب* (*WC3*) اولین پیش نویس "واژگان HTCPCP در سیستم چارچوب توصیف منبع (RDF) "را در تقلید به کنسرسیوم شبکه جهانی وب (W3C) و "واژگان HTTP در RDF" منتشر کرد. .

در اول آوریل ۲۰۱۴، RFC 7168 HTCPCP گسترش داده شد تا به‌طور کامل از قوری‌های چای پشتیبانی کند.

دستورها و پاسخ‌ها
-----------------

HTCPCP پسوند HTTP است. درخواستهای HTCPCP با استفاده از برنامه شناسانهٔ منبع یکسان (URI) `coffee` (یا کلمه مربوط به هر زبان دیگر از ۲۹ زبان پشتیبانی شده) شناسایی می‌شوند و حاوی چندین مورد اضافی به روشهای HTTP هستند:

|  |  |
| --- | --- |
| `BREW` یا `POST` | باعث می‌شود که سرور HTCPCP قهوه دم کند. استفاده از POST برای این منظور منسوخ شده‌است. یک قسمت جدید برای عنوان HTTP درخواست "Accept-Additions" ارائه شده‌است، که از افزودنیهای اختیاری شامل خامه، شیر کامل، وانیل، تمشک، ویسکی، آکواویت و غیره پشتیبانی می‌کند. |
| `GET` | قهوه را از سرور HTCPCP"بازیابی"می‌کند. |
| `PROPFIND` | فراداده مربوط به قهوه را برمی‌گرداند. |
| `WHEN` | می‌گوید "کی"، باعث می‌شود سرور HTCPCP دیگر شیر را به قهوه نریزد (در صورت وجود). |

همچنین دو پاسخ خطا را تعریف می‌کند:

|  |  |
| --- | --- |
| `406 Not Acceptable` | سرور HTCPCP بنا به دلیلی قادر به افزودن درخواست نیست. پاسخ باید لیستی از اطلاعات موجود را نشان دهد. RFC اعلام می‌کند که "در عمل، اکثر قهوه جوش‌های خودکار در حال حاضر نمی‌توانند مواد اضافی تهیه کنند." |
| `418 I'm a teapot` | سرور HTCPCP یک قوری است. بدنهٔ پاسخ سرور "ممکن است کوتاه و لاغر باشد" (اشاره به آهنگ "من یک قوری کوچک هستم "). نمونه‌های این رفتار وجود دارد. |

جنبش حفظ ۴۱۸
------------

در ۵ اوت ۲۰۱۷، مارک ناتینگهام، رئیس گروه کاری IETF HTTPBIS، خواستار حذف کد وضعیت ۴۱۸ «من یک قوری هستم» از پلتفرم Node.js شد هدف او حذف قسمتی از کد اجرا شده با توجه به ۴۱۸ «من یک قوری هستم» اصلی که در پروتکل HTTP ایجاد شده بود. در ۶ اوت ۲۰۱۷، ناتینگهام درخواست کرد که ارجاع به 418 "I'm a teapot" از زبان برنامه‌نویسی Go و متعاقباً از پایتون و ای‌اس‌پی‌دات‌نت (ASP) حذف شود.

در پاسخ، توسعه دهنده ۱۵ ساله، شین برانزویک، وب سایت save418.com را ایجاد کرد، و "جنبش ذخیره ۴۱۸" را تأسیس کرد و اظهار داشت که ارجاع به ۴۱۸ "من یک قوری هستم" در پروژه‌های مختلف به عنوان "یک" یادآور که فرایندهای اساسی رایانه‌ها هنوز توسط انسان ساخته می‌شوند ". سایت برانزویک ساعاتی پس از انتشار همه گیر (وایرال) شد و در بستر شبکه اجتماعی ردیت هزاران رأی موافق جمع کرد و باعث استقبال گسترده از هشتگ توییتر "# save418" شد که وی در سایت خود معرفی کرده بود. توجه به این اعتراضات عمومی، Node.js , Go , Python's Requests و ASP. کتابخانه HttpAbstractions NET تصمیم به حذف ۴۱۸ "من یک قوری هستم" از پروژه‌های مربوط را لغو کردند. حمایت یکپارچه پروژه‌های یادشده و عموم مردم، ناتینگهام را بر آن داشت تا کد ۴۱۸ را به عنوان کد رزرو شده برای وضعیت HTTP را تأیید کند و اطمینان حاصل کند که ۴۱۸ با کد وضعیت رسمی دیگری در آینده جایگزین نخواهد شد.

در ۵ اکتبر ۲۰۲۰، پایتون ۳٫۹ با یک کتابخانه http به روز شده شامل `418 IM_A_TEAPOT` با کد وضعیت IM\_A\_TEAPOT منتشر شد. در درخواست مربوط به به روز رسانی، جنبش حفظ ۴۱۸ (Save 418) مستقیماً به عموان دلیل این به روز رسانی ذکر شد.

جستارهای وابسته
---------------

* اینترنت اشیا

پانویس
------

* مشارکت‌کنندگان ویکی‌پدیا. «Hyper Text Coffee Pot Control Protocol». در *دانشنامهٔ ویکی‌پدیای انگلیسی*، بازبینی‌شده در ۲۱ آوریل ۲۰۲۱.

منابع
-----

1. 1 2  Reddington, Joseph, *Illustrated implementation of Error 418*, archived from the original on 2015-09-06, retrieved 2014-10-18
2. 1 2  "Request for Comments 7168", *The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA)*, IETF
3. ↑  Masinter, Larry. "IETF RFCs". Archived from the original on 2013-03-27.
4. ↑  "Emacs extension: coffee.el", *Emarsden*, Chez.
5. ↑  "Bug 46647 – (coffeehandler) HTCPCP not supported (RFC2324)", *Bugzilla*, Mozilla
6. ↑  *HTCPCP Vocabulary in RDF – WC3 RFC Draft*, Chief Arabica (Web-Controlled Coffee Consortium), 1 April 2008, archived from the original on 15 May 2021, retrieved 27 April 2017
7. ↑  Koch, Johannes (ed.), *HTTP Vocabulary in RDF*, et al, W3, retrieved 17 August 2009
8. ↑  "A Goblin Teasmade teamaker with an implementation of Error 418". Archived from the original on 2014-12-06. Retrieved 2014-07-26.
9. ↑  Nottingham, Mark. "418 I'm A Teapot #14644".
10. ↑  Nottingham, Mark. "net/http: remove support for status code 418 I'm a Teapot".
11. ↑  Nottingham, Mark. "418 418 I'm a Teapot #4238".
12. ↑  Brunswick, Shane. "We are the teapots". *The Save 418 Movement*.
13. ↑  "HTTP Error Code 418 I'm a Teapot is about to be removed from Node. We've gotta do something. [x-post /r/webdev]".
14. ↑  Nottingham, Mark. "Reserving 418".
15. ↑  "What's New In Python 3.9 — Python 3.9.0 documentation". *Python Documentation*. 2020-10-05. Retrieved 2020-10-08.
16. ↑  "Issue 39507: http library missing HTTP status code 418 "I'm a teapot" - Python tracker". *bugs.python.org*. Retrieved 2020-10-08.

پیوند به بیرون
--------------

* صفحه آزمایشی Google: خطای ۴۱۸ (من قوری هستم)! ؟
* قوری بسته‌بندی پیاده‌سازی HTCPCP-TEA توسط دیوید اسکینر
* error418.net (بایگانی شده)