Hyper Text Coffee Pot Control Protocol

Un article de Wikipédia, l'encyclopédie libre.
Implémentation de l'HTCPCP avec un Raspberry Pi

L'Hyper Text Coffee Pot Control Protocol ou HTCPCP — de l'anglais signifiant littéralement « protocole hypertexte de gestion de cafetière » — est une proposition humoristique de protocole de communication client-serveur permettant le contrôle, la surveillance et le diagnostic de cafetière.

HTCPCP est décrit dans la RFC 2324[1] publié le [2] et bien que cette RFC soit un poisson d'avril, elle est suffisamment bien décrite pour être implémentée : l'éditeur de texte Emacs possède d'ailleurs une extension[3] permettant de générer des requêtes d'infusion via HTCPCP.

Il existe également un rapport de bug sur bugzilla qui déplore l'absence de support du protocole dans la suite Mozilla[4].

Le , 10 ans après la publication d'HTCPCP, un Web-Controlled Coffee Consortium (WC3) imaginaire publie une première version de la description du vocabulaire RDF[5] en imitation du World Wide Web Consortium (W3C) et de son propre HTTP Vocabulary in RDF[6].

Le , la RFC 7168[7] étend le protocole à l'infusion du thé, sous le nom Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA).

Description du protocole[modifier | modifier le code]

HTCPCP est une extension du protocole HTTP dont les requêtes sont identifiées par le schéma d'URI coffee: (ou le nom du café dans l'une des 29 langues listées dans la RFC : afrikaans, allemand, anglais, arabe, azéri, basque, bengali, bosnien, bulgare, catalan, chinois, coréen, croate, danois, espéranto, estonien, finnois, français, galicien, grec, hindi, japonais, néerlandais, norvégien, russe, suédois, tchèque, thaï).

Méthodes[modifier | modifier le code]

Les méthodes ajoutées sont les suivantes :

BREW ou POST Déclenche l'infusion du café par le serveur HTCPCP
GET Récupère le café depuis le serveur HTCPCP
PROPFIND Affichage des métadonnées sur le café
WHEN Envoyer when notifie le serveur HTCPCP de stopper l'écoulement du lait dans le café (s'il y a lieu)

Champs d'en-tête[modifier | modifier le code]

De plus, afin de définir la préparation suivant les possibilités de la cafetière, un champ d'en-tête est également ajouté : Accept-Additions. Les valeurs possibles sont les suivantes :

Champ d'en-tête Description Valeur(s) Description
addition-type définit les choix d'addition possibles pour la préparation du café * tous les types
milk-type choix de lait (voir plus bas)
syrup-type choix de sirop (voir plus bas)
sweetener-type choix de sucre
spice-type choix d'épice
alcohol-type choix d'alcool (voir plus bas)
milk-type définit les choix de lait possibles Cream crème
Half-and-half moitié-moitié
Whole-milk entier
Part-Skim demi-écrémé
Skim écrémé
Non-Dairy non laitier (ex. : lait de soja)
syrup-type définit les choix de sirop possibles Vanilla vanille
Almond amande
Raspberry framboise
Chocolate chocolat
alcohol-type définit les choix d'alcool possibles Whisky whisky
Rum rhum
Kahlua kahlúa
Aquavit aquavit

Volontairement, aucune option n'est définie pour le décaféiné, choix justifié par le commentaire : « quel est l'intérêt ? ».

Codes d'erreur[modifier | modifier le code]

Enfin, deux codes d'erreur client sont définis :

406 Not Acceptable Le serveur HTCPCP ne peut pas infuser du café pour différentes raisons, la réponse devrait indiquer une liste de types de café possibles.
418 I'm a teapot Le serveur HTCPCP est une théière.
Ce code d'erreur est renvoyé par certains sites web en réponse à des requêtes qu'ils refusent de traiter, comme celles provenant de bots[8].

Reprises sur le web[modifier | modifier le code]

Quelques sites ont depuis repris l'idée pour afficher des pages faisant référence à ce poisson d'avril. Google a par exemple créé une page affichant une théière sur laquelle il est possible de cliquer pour verser. Sur la version mobile, il suffit de pencher l'appareil pour verser le thé dans la tasse.

Notes et références[modifier | modifier le code]

  1. (en) Request for comments no 2324
  2. (en) « Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) », IETF.
  3. (en) « Downloads -=- Eric Marsden », sur emarsden.chez.com (consulté le ).
  4. (en) « 46647 – (coffeehandler) Joke: HTCPCP not supported (RFC2324) », sur bugzilla.mozilla.org (consulté le ).
  5. (en) « HTCPCP Vocabulary in RDF », KU Leuven, Departement Elektrotechniek (ESAT), (version du sur Internet Archive).
  6. (en) « HTTP Vocabulary in RDF 1.0 », sur www.w3.org (consulté le ).
  7. (en) Request for comments no 7168
  8. « 418 I'm a teapot », MDN Web Docs.

Voir aussi[modifier | modifier le code]

Sur les autres projets Wikimedia :