HTCPCP

Hyper Text Coffee Pot Control Protocol (HTCPCP, гипертекстовый протокол управления кофеваркой) — протокол для управления, слежения и диагностики приборов для приготовления кофе.

Кофеварка для приготовления эспрессо

HTCPCP описан в RFC 2324, опубликованном 1 апреля 1998 года. Хотя RFC, описывающий протокол, является первоапрельской шуткой и не может приниматься всерьёз, он описывает сам протокол достаточно серьёзно, так, как будто он является действительно существующим. Пока не существует ни одной известной полноценной реализации этого протокола.

HTCPCP является расширением HTTP. Запросы HTCPCP определяются с помощью схемы URI coffee: и содержат несколько добавлений к HTTP-запросам:

  • BREW или POST: Заставляет сервер HTCPCP подавать кофе. Использование POST для этой цели не рекомендуется. Предлагается новое поле заголовка HTTP-запроса «Accept-Additions», поддерживающее дополнительные ингредиенты, включая сливки, цельное молоко, ваниль, малину, виски и т. д.
  • GET: «получает» кофе от HTCPCP-сервера.
  • PROPFIND: возвращает метаданные о кофе.
  • WHEN: Заставляет HTCPCP-сервер завершить добавление молока в кофе (если это возможно).

Также сервер может возвращать ошибки. Ниже представлены их коды:

  • 406 «Not Acceptable» (Ошибка 406: Не приемлемо) — возвращается при ситуации, когда сервер не в состоянии выполнить запрос клиента; ответ сервера при этом должен содержать также перечень видов кофе, доступных для приготовления.
  • 418 «I’m a teapot» (Ошибка 418: Я — чайник) — возвращается при попытке приготовить кофе с помощью чайника.

Как было отмечено Стефаном Мёбиусом, предложенная спецификация протокола HTCPCP имеет тот недостаток, что не предусматривает кода ошибки «Out of Coffee» для случая, когда кофе в кофеварке закончился. Обсуждались возможности расширения спецификации протокола для случаев других напитков: чая, пива, молока и т. п.

Интересные факты

Некоторые веб-фреймворки поддерживают HTTP-статус 418 «I’m a teapot», например NestJS,[1] Django[2], Flask (Werkzeug[3]), Symfony[4], Yii[5], Spring и Bottle[6].

Ссылки

  • RFC 2324 — Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)
  • HOWTO-Coffee — Руководство по приготовлению кофе с помощью Linux

Примечания

  1. Documentation | NestJS - A progressive Node.js framework (англ.). Documentation | NestJS - A progressive Node.js framework. Дата обращения: 28 апреля 2021.
  2. django/django (англ.). GitHub. Дата обращения: 18 мая 2017.
  3. pallets/werkzeug (англ.). GitHub. Дата обращения: 18 мая 2017.
  4. symfony/http-foundation (англ.). GitHub. Дата обращения: 18 мая 2017.
  5. yiisoft/yii2. GitHub. Дата обращения: 25 сентября 2015.
  6. bottlepy/bottle. GitHub. Дата обращения: 23 апреля 2016.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.