HTCPCP (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» является шуточным, и не ожидается, что он будет поддерживаться реальными серверами, однако он до сих пор иногда используется в качестве пасхального яйца. Данный код ошибки поддерживают такие веб-фреймворки, как ASP.NET[1], NestJS[2], Django[3], Flask (Werkzeug[4]), Symfony[5], Yii[6], Spring и Bottle[7]. На сайте Google имеется веб-страница, обращение к которой приводит к появлению ошибки 418. На самой странице изображён чайник, из которого можно налить чай в чашку, нажав на него, или наклонив устройство в мобильной версии. Сайт https://huku.one/teapot возвращает стандартную страницу ошибок Apache с кодом 418, хотя сам веб-сервер не поддерживает данный код.

В период Российско-украинского кризиса (2021—2022) сайт Министерства обороны Российской Федерации mil.ru в качестве меры для защиты от DoS-атак возвращал ошибку 418 при попытке доступа из-за пределов России.[8][9]. Впервые такое поведение было замечено в декабре 2021 года.[10]

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

Примечания

[править | править код]
  1. dotnet/aspnetcore (англ.). GitHub. Дата обращения: 4 июля 2022. Архивировано 5 июля 2022 года.
  2. Documentation | NestJS - A progressive Node.js framework (англ.). Documentation | NestJS - A progressive Node.js framework. Дата обращения: 28 апреля 2021. Архивировано 1 мая 2021 года.
  3. django/django (англ.). GitHub. Дата обращения: 18 мая 2017.
  4. pallets/werkzeug (англ.). GitHub. Дата обращения: 18 мая 2017.
  5. symfony/http-foundation (англ.). GitHub. Дата обращения: 18 мая 2017.
  6. yiisoft/yii2. GitHub. Дата обращения: 25 сентября 2015.
  7. bottlepy/bottle. GitHub. Дата обращения: 23 апреля 2016. Архивировано 18 февраля 2016 года.
  8. Russia appears to deploy digital defenses after DDoS attacks (англ.). The Record by Recorded Future (25 февраля 2022). Дата обращения: 26 февраля 2022. Архивировано 26 февраля 2022 года.
  9. I Went to a Russian Website and All I Got Was This Lousy Teapot (англ.). PCMag. Дата обращения: 28 февраля 2022. Архивировано 28 февраля 2022 года.
  10. Russian MoD website blocked for non-Russian IPs | Hacker News. Дата обращения: 4 июля 2022. Архивировано 26 февраля 2022 года.