Posted at

[Joke-RFC] RFC2324 ハイパーテキストコーヒーポット制御プロトコル(HTCPCP/1.0)


  • この文書は RFC2324 を勉強と好奇心のため適当に訳したものです。

  • 翻訳の正確さは全く保証しません。

  • 誤字誤訳等の指摘はいつでも大歓迎です。

Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)(ハイパーテキストコーヒーポット制御プロトコル)

  • Network Working Group

  • Request for Comments: 2324

  • Category: Informational

  • L. Masinter

  • 1 April 1998

Status of this Memo(このメモの位置付け)

This memo provides information for the Internet community.

It does not specify an Internet standard of any kind.

Distribution of this memo is unlimited.


Copyright Notice

Copyright (C) The Internet Society (1998). All Rights Reserved.


This document describes HTCPCP, a protocol for controlling, monitoring, and diagnosing coffee pots.


1. Rationale and Scope(論理的根拠と範囲)

There is coffee all over the world. Increasingly, in a world in which computing is ubiquitous, the computists want to make coffee.

Coffee brewing is an art, but the distributed intelligence of the web-connected world transcends art.

Thus, there is a strong, dark, rich requirement for a protocol designed espressoly for the brewing of coffee.

Coffee is brewed using coffee pots.

Networked coffee pots require a control protocol if they are to be controlled.



コーヒーを淹れることは芸術であるが、分散され Web 接続された世界の叡智は芸術を超越する。

したがって、はっきりと(espressoly; エスプレッソと expressly を掛けている?)コーヒーを淹れるプロトコルの設計が、ストロングに、ダークに、リッチに要求されている。



Increasingly, home and consumer devices are being connected to the Internet.

Early networking experiments demonstrated vending devices connected to the Internet for status monitoring [COKE].

One of the first remotely operated machine to be hooked up to the Internet, the Internet Toaster, (controlled via SNMP) was debuted in 1990 [RFC2235].


初期のネットワーク実験では、状態監視のためにインターネットに接続した自動販売機の実証実験が行われた [COKE]。

インターネットに接続され遠隔操作された最初のマシンの 1 つ、インターネットトースター(SNMP で制御)は 1990 年にデビューした[RFC2235]。

The demand for ubiquitous appliance connectivity that is causing the consumption of the IPv4 address space.

Consumers want remote control of devices such as coffee pots so that they may wake up to freshly brewed coffee, or cause coffee to be prepared at a precise time after the completion of dinner preparations.

IPv4 のアドレス空間の消費を引き起こしている、いたるところにある家電を接続する要望。


This document specifies a Hyper Text Coffee Pot Control Protocol (HTCPCP), which permits the full request and responses necessary to control all devices capable of making the popular caffeinated hot beverages.


HTTP 1.1 ([RFC2068]) permits the transfer of web objects from origin servers to clients.

The web is world-wide. HTCPCP is based on HTTP.

This is because HTTP is everywhere.

It could not be so pervasive without being good.

Therefore, HTTP is good.

If you want good coffee, HTCPCP needs to be good.

To make HTCPCP good, it is good to base HTCPCP on HTTP.

HTTP 1.1([RFC2068])は、サーバからクライアントへの Web オブジェクトの転送をすることができる。


HTCPCP は HTTP に基づいている。

これは、HTTP がどこにでもあるからだ。


したがって、HTTP は良い物だ。

あなたが良いコーヒーを欲する場合、HTCPCP は良い必要がある。

HTCPCP を良くするには、HTCPCP を HTTP ベースにするのが良いだろう。

Future versions of this protocol may include extensions for espresso machines and similar devices.


2. HTCPCP Protocol(HTCPCPプロトコル)

The HTCPCP protocol is built on top of HTTP, with the addition of a few new methods, header fields and return codes.

All HTCPCP servers should be referred to with the "coffee:" URI scheme (Section 4).

HTCPCP プロトコルは、HTTP の上に構築され、いくつかのメソッド、ヘッダフィールド、およびリターンコードが追加されている。

すべての HTCPCP サーバは、"coffee:" URI スキーム(セクション4)で参照されるべきだ。

2.1 HTCPCP Added Methods(HTCPCP追加メソッド)

2.1.1 The BREW method, and the use of POST(BREWメソッドとPOSTの使用)

Commands to control a coffee pot are sent from client to coffee server using either the BREW or POST method, and a message body with Content-Type set to "application/coffee-pot-command".

コーヒーポットを制御するコマンドは、BREW または POST メソッドと Content-Type が "application/coffee-pot-command" に設定されたメッセージ本文を使用して、クライアントからコーヒーサーバーに送信される。

A coffee pot server MUST accept both the BREW and POST method equivalently.

However, the use of POST for causing actions to happen is deprecated.

コーヒーポットサーバーは、同等の方法で BREW と POST の両方の方法を受け入れなければならない(MUST)。

ただし、アクションを発生させるために POST を使用することは推奨されていない。

Coffee pots heat water using electronic mechanisms, so there is no fire.

Thus, no firewalls are necessary, and firewall control policy is irrelevant.

However, POST may be a trademark for coffee, and so the BREW method has been added.

The BREW method may be used with other HTTP-based protocols (e.g., the Hyper Text Brewery Control Protocol).



ただし、POST はコーヒーの商標である可能性があるため、BREWメソッドが追加されました。

BREW メソッドは、他の HTTP ベースのプロトコル(例えば、ハイパーテキストビール制御プロトコル)と共に使用することができる。

2.1.2 GET method(GETメソッド)

In HTTP, the GET method is used to mean "retrieve whatever information (in the form of an entity) identified by the Request-URI."

If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the entity in the response and not the source text of the process, unless that text happens to be the output of the process.

HTTP では、GET メソッドは、「Request-URIによって識別される(エンティティの形式の)情報を取得する」という意味で使用される。

Request-URI がデータ生成プロセスを参照する場合、それはプロセスの出力である場合を除いて、プロセスのソーステキストではなく、レスポンス内のエンティティとして返される生成データである。

In HTCPCP, the resources associated with a coffee pot are physical, and not information resources.

The "data" for most coffee URIs contain no caffeine.

HTCPCP では、コーヒーポットに関連する資源は物理資源であり、情報資源ではない。

ほとんどのコーヒー URI の「データ」にはカフェインが含まれていない。

2.1.3 PROPFIND method(PROPFINDメソッド)

If a cup of coffee is data, metadata about the brewed resource is discovered using the PROPFIND method [WEBDAV].

1杯のコーヒーがデータである場合、抽出されたリソースに関するメタデータは PROPFIND メソッド[WEBDAV]を使用して検出される。

2.1.4 WHEN method(WHENメソッド)

When coffee is poured, and milk is offered, it is necessary for the holder of the recipient of milk to say "when" at the time when sufficient milk has been introduced into the coffee.

For this purpose, the "WHEN" method has been added to HTCPCP.

Enough? Say WHEN.

コーヒーが注がれ、牛乳が提供されるとき、コーヒーに十分な牛乳が入った時点で "when" と言う必要がある。

この目的のために、 "WHEN" メソッドが HTCPCP に追加された。

十分な? WHEN と言ってください。

2.2 Coffee Pot Header fields(コーヒーポットヘッダフィールド)

HTCPCP recommends several HTTP header fields and defines some new ones.

HTCPCP はいくつかの HTTP ヘッダフィールドを推奨し、いくつかの新しいヘッダフィールドを定義する。

2.2.1 Recommended header fields(推奨ヘッダフィールド) The "safe" response header field.("safe"レスポンスヘッダフィールド)

[SAFE] defines a HTTP response header field, "Safe", which can be used to indicate that repeating a HTTP request is safe.

The inclusion of a "Safe: Yes" header field allows a client to repeat a previous request if the result of the request might be repeated.

[SAFE]は HTTP 応答ヘッダフィールド "Safe" を定義し、HTTP リクエストの繰り返しが安全であることを示すために使用できる。

もしリクエストの結果が繰り返される可能性がある場合、"Safe:Yes" ヘッダフィールドを含めることで、クライアントに以前のリクエストを繰り返すことを許可する。

The actual safety of devices for brewing coffee varies widely, and may depend, in fact, on conditions in the client rather than just in the server.

Thus, this protocol includes an extension to the "Safe" response header:


したがって、このプロトコルには "Safe" レスポンスヘッダの拡張が含まれている:

          Safe                = "Safe" ":" safe-nature

safe-nature = "yes" | "no" | conditionally-safe
conditionally-safe = "if-" safe-condition
safe-condition = "user-awake" | token

indication will allow user agents to handle retries of some safe requests, in particular safe POST requests, in a more user-friendly way.

ユーザエージェントは、いくつかの安全なリクエスト、特に安全な POST リクエストの再試行を、よりユーザフレンドリーな方法で処理できるようになる。

2.2.2 New header fields(新しいヘッダフィールド) The Accept-Additions header field(Accept-Additionsヘッダフィールド)

In HTTP, the "Accept" request-header field is used to specify media types which are acceptable for the response.

However, in HTCPCP, the response may result in additional actions on the part of the automated pot.

For this reason, HTCPCP adds a new header field, "Accept-Additions":

HTTP では、 "Accept" リクエストヘッダフィールドは、応答に受け入れられるメディアタイプを指定するために使用される。

しかし、HTCPCP では、応答によって自動ポットのパーツに追加のアクションが発生する可能性があります。

このため、HTCPCP は新しいヘッダーフィールド "Accept-Additions" を追加する:

       Accept-Additions = "Accept-Additions" ":"

#( addition-range [ accept-params ] )

addition-type = ( "*"
| milk-type
| syrup-type
| sweetener-type
| spice-type
| alcohol-type
) *( ";" parameter )
milk-type = ( "Cream" | "Half-and-half" | "Whole-milk"
| "Part-Skim" | "Skim" | "Non-Dairy" )
syrup-type = ( "Vanilla" | "Almond" | "Raspberry"
| "Chocolate" )
alcohol-type = ( "Whisky" | "Rum" | "Kahlua" | "Aquavit" )

2.2.3 Omitted Header Fields(切り捨てられたヘッダフィールド)

No options were given for decaffeinated coffee. What's the point?


2.3 HTCPCP return codes(HTCPCPリターンコード)

Normal HTTP return codes are used to indicate difficulties of the HTCPCP server.

This section identifies special interpretations and new return codes.

通常の HTTP リターンコードは、HTCPCP サーバーの問題を示すためにも使用される。


2.3.1 406 Not Acceptable

This return code is normally interpreted as "The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.

In HTCPCP, this response code MAY be returned if the operator of the coffee pot cannot comply with the Accept-Addition request.

Unless the request was a HEAD request, the response SHOULD include an entity containing a list of available coffee additions.


HTCPCP では、コーヒーポットのオペレータが Accept-Addition 要求に従うことができない場合、この応答コードを返すことがある。

要求が HEAD 要求でない限り、応答は利用可能なコーヒー追加のリストを含むエンティティを含むべきである(SHOULD)。

In practice, most automated coffee pots cannot currently provide additions.


2.3.2 418 I'm a teapot

Any attempt to brew coffee with a teapot should result in the error code "418 I'm a teapot".

The resulting entity body MAY be short and stout.

ティーポットでコーヒーを淹れようとすると、"418 I'm a teapot" というエラーコードが返される。


3. The "coffee" URI scheme

Because coffee is international, there are international coffee URI schemes.

All coffee URL schemes are written with URL encoding of the UTF-8 encoding of the characters that spell the word for "coffee" in any of 29 languages, following the conventions for internationalization in URIs [URLI18N].

コーヒーは国際的であるため、国際コーヒー URI スキームがある。

すべてのコーヒー URL スキームは、URIs [URLI18N] の国際化規則に従って、29 の言語のいずれかで "coffee" の単語を綴る文字の UTF-8 エンコーディングの URL エンコーディングで書かれている。

coffee-url  =  coffee-scheme ":" [ "//" host ]

["/" pot-designator ] ["?" additions-list ]

coffee-scheme = ( "koffie" ; Afrikaans, Dutch

| "q%C3%A6hv%C3%A6" ; Azerbaijani

| "%D9%82%D9%87%D9%88%D8%A9" ; Arabic

| "akeita" ; Basque

| "koffee" ; Bengali

| "kahva" ; Bosnian

| "kafe" ; Bulgarian, Czech

| "caf%C3%E8" ; Catalan, French, Galician

| "%E5%92%96%E5%95%A1" ; Chinese

| "kava" ; Croatian

| "k%C3%A1va ; Czech

| "kaffe" ; Danish, Norwegian, Swedish

| "coffee" ; English

| "kafo" ; Esperanto

| "kohv" ; Estonian

| "kahvi" ; Finnish

| "%4Baffee" ; German

| "%CE%BA%CE%B1%CF%86%CE%AD" ; Greek

| "%E0%A4%95%E0%A5%8C%E0%A4%AB%E0%A5%80" ; Hindi

| "%E3%82%B3%E3%83%BC%E3%83%92%E3%83%BC" ; Japanese

| "%EC%BB%A4%ED%94%BC" ; Korean

| "%D0%BA%D0%BE%D1%84%D0%B5" ; Russian

| "%E0%B8%81%E0%B8%B2%E0%B9%81%E0%B8%9F" ; Thai


pot-designator = "pot-" integer ; for machines with multiple pots

additions-list = #( addition )


| スキーマ | 言語 |
| "koffie" | アフリカーンス語、オランダ語 |
| "qæhvæ" | アゼルバイジャン語 |
| "قهوة" | アラビア語 |
| "akeita" | バスク語 |
| "koffee" | ベンガル語 |
| "kahva" | ボスニア語 |
| "kafe" | ブルガリア語、チェコ語 |
| "café" | カタロニア語、フランス語、ガリア語(※) |
| "咖啡" | 中国語 |
| "kava" | クロアチア語 |
| "káva" | チェコ語 |
| "kaffe" | デンマーク語、ノルウェー語、スウェーデン語 |
| "coffee" | 英語 |
| "kafo" | エスペラント語 |
| "kohv" | エストニア語 |
| "kahvi" | フィンランド語 |
| "Kaffee" | ドイツ語 |
| "καφέ" | ギリシャ語 |
| "कौफी" | ヒンディー語 |
| "コーヒー" | 日本語 |
| "커피" | 韓国・朝鮮語 |
| "кофе" | ロシア語 |
| "กาแฟ" | タイ語 |


* カタロニア語は "caf%C3%A8" ?
* フランス語は"caf%C3%A9" ?

> All alternative coffee-scheme forms are equivalent.
> However, the use of coffee-scheme in various languages MAY be interpreted as an indication of the kind of coffee produced by the coffee pot.
> Note that while URL scheme names are case-independent, capitalization is important for German and thus the initial "K" must be encoded.

URL スキーム名は大文字と小文字を区別しないが、ドイツ語では大文字と小文字の違いが重要なため、最初の「K」をエンコードする必要がある。

## 4. The "message/coffeepot" media type("message/coffeepot"メディアタイプ)

> The entity body of a POST or BREW request MUST be of Content-Type "message/coffeepot".
> Since most of the information for controlling the coffee pot is conveyed by the additional headers, the content of "message/coffeepot" contains only a coffee-message-body:

POST または BREW リクエストのエンティティ本体は、Content-Type "message/coffeepot" でなければならない。
コーヒーポットを制御するための情報の大部分は追加ヘッダーによって伝達されるので、"message/coffeepot" の内容は coffee-message-body のみを含む:

coffee-message-body = "start" | "stop"


5. Operational constraints(操作上の制約)

This section lays out some of the operational issues with deployment of HTCPCP ubiquitously.

このセクションでは、HTCPCP を普及させる際の運用上の問題のいくつかについて述べる。

5.1 Timing Considerations(タイミングの考慮事項)

A robust quality of service is required between the coffee pot user and the coffee pot service. Coffee pots SHOULD use the Network Time Protocol [NTP] to synchronize their clocks to a globally accurate time standard.

コーヒーポットユーザーとコーヒーポットサービスの間には、堅牢なサービス品質が求められる。 コーヒーポットは、Network Time Protocol [NTP]を使用して、世界的に正確な時間基準にクロックを同期させるべきである(SHOULD)。

Telerobotics has been an expensive technology. However, with the advent of the Cambridge Coffee Pot [CAM], the use of the web (rather than SNMP) for remote system monitoring and management has been proven. Additional coffee pot maintenance tasks might be accomplished by remote robotics.

テレロボティクスは高価な技術だった。 しかし、ケンブリッジ・コーヒーポット[CAM]の出現により、リモートシステムの監視と管理に(SNMPではなく)Web を使用することが実証されている。 追加のコーヒーポットの保守作業は、遠隔ロボットによって達成されるかもしれない。

Web data is normally static. Therefore to save data transmission and time, Web browser programs store each Web page retrieved by a user on the user's computer. Thus, if the user wants to return to that page, it is now stored locally and does not need to be requested again from the server. An image used for robot control or for monitoring a changing scene is dynamic. A fresh version needs to be retrieved from the server each time it is accessed.

通常、Web データは静的である。 したがって、データの送信および時間を節約するために、ウェブブラウザは、ユーザによって検索された各ウェブページをユーザのコンピュータに格納する。 したがって、もしユーザーがそのページに戻る場合は、ローカルに保存されており、サーバーに再度要求する必要はなし。 ロボットの制御や、変化するシーンの監視に使用される画像は動的である。 新しい(新鮮な)バージョンはアクセスするたびにサーバーから取得する必要がある。

5.2 Crossing firewalls(ファイアウォール跨ぎ)

In most organizations HTTP traffic crosses firewalls fairly easily. Modern coffee pots do not use fire. However, a "firewall" is useful for protection of any source from any manner of heat, and not just fire. Every home computer network SHOULD be protected by a firewall from sources of heat. However, remote control of coffee pots is important from outside the home. Thus, it is important that HTCPCP cross firewalls easily.

ほとんどの組織では、HTTP トラフィックはかなり容易にファイアウォールを通過できる。





したがって、HTCPCP はファイアウォールを容易に通過することは重要である。

By basing HTCPCP on HTTP and using port 80, it will get all of HTTP's firewall-crossing virtues. Of course, the home firewalls will require reconfiguration or new versions in order to accommodate HTCPCP-specific methods, headers and trailers, but such upgrades will be easily accommodated. Most home network system administrators drink coffee, and are willing to accommodate the needs of tunnelling HTCPCP.

HTCPCP は HTTP を基にポート 80 を使用することで、HTTP のファイアウォールを越える効果のすべてを得ることができる。

もちろん、ホームファイアウォールは HTCPCP 固有のメソッド、ヘッダ、およびトレイラーに対応するために、再構成または新バージョンが必要になるが、そのようなアップグレードは容易に受け入れられる。

ほとんどのホームネットワークのシステム管理者はコーヒーを飲み、HTCPCP のトンネリングのニーズに対応しようとするだろう。

6. System management considerations(システム管理について)

Coffee pot monitoring using HTTP protocols has been an early application of the web. In the earliest instance, coffee pot monitoring was an early (and appropriate) use of ATM networks [CAM].

HTTP プロトコルを使用したコーヒーポットの監視は、ウェブの初期のアプリケーションだった。

最も初期の段階では、コーヒーポットの監視は、ATM ネットワークの早期(かつ適切な)使用であった[CAM]。

The traditional technique [CAM] was to attach a frame-grabber to a video camera, and feed the images to a web server. This was an appropriate application of ATM networks. In this coffee pot installation, the Trojan Room of Cambridge University laboratories was used to give a web interface to monitor a common coffee pot. of us involved in related research and, being poor, impoverished academics, we only had one coffee filter machine between us, which lived in the corridor just outside the Trojan Room. However, being highly dedicated and hard-working academics, we got through a lot of coffee, and when a fresh pot was brewed, it often didn't last long.

従来の技術[CAM]では、ビデオカメラに静止画像取り込み装置を取り付け、画像を Web サーバーに送った。

これは ATM ネットワークにふさわしいアプリケーションだった。

このコーヒーポットの導入では、ケンブリッジ大学の研究所の「トロイの木馬」ルームを使用して、一般的なコーヒーポットを監視するための Web インターフェイスを提供した。



This service was created as the first application to use a new RPC mechanism designed in the Cambridge Computer Laboratory - MSRPC2. It runs over MSNL (Multi-Service Network Layer) - a network layer protocol designed for ATM networks.

このサービスは、ケンブリッジコンピュータ研究室で設計された新しい RPC メカニズム(MSRPC2)を使用する最初のアプリケーションとして作成された。

これは、ATM ネットワーク用に設計されたネットワーク層プロトコルである MSNL(Multi-Service Network Layer)上で動作する。

Coffee pots on the Internet may be managed using the Coffee Pot MIB [CPMIB].

インターネット上のコーヒーポットは、コーヒーポット MIB [CPMIB]を使用して管理することができるだろう。

7. Security Considerations

Anyone who gets in between me and my morning coffee should be insecure.


Unmoderated access to unprotected coffee pots from Internet users might lead to several kinds of "denial of coffee service" attacks. The improper use of filtration devices might admit trojan grounds. Filtration is not a good virus protection method.




Putting coffee grounds into Internet plumbing may result in clogged plumbing, which would entail the services of an Internet Plumber [PLUMB], who would, in turn, require an Internet Plumber's Helper.


Access authentication will be discussed in a separate memo.


8. Acknowledgements(謝辞)

Many thanks to the many contributors to this standard, including Roy Fielding, Mark Day, Keith Moore, Carl Uno-Manros, Michael Slavitch, and Martin Duerst. The inspiration of the Prancing Pony, the CMU Coke Machine, the Cambridge Coffee Pot, the Internet Toaster, and other computer controlled remote devices have led to this valuable creation.

Roy Fielding、Mark Day、Keith Moore、Carl Uno-Manros、Michael Slavitch、Martin Duerstなど、多くの貢献者に感謝する。

Prancing Pony、CMU コーラ・マシン、ケンブリッジ・コーヒーポット、インターネット・トースター、その他のコンピュータ制御リモートデバイスのインスピレーションは、この貴重な創造につながった。

9. References

[RFC2068] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., and T.

Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2068,

January 1997.

[RFC2186] Wessels, D., and K. Claffy, "Internet Cache Protocol (ICP),

version 2," RFC 2186, September 1997

[CPMIB] Slavitch, M., "Definitions of Managed Objects for Drip-Type

Heated Beverage Hardware Devices using SMIv2", RFC 2325, 1 April


[HTSVMP] Q. Stafford-Fraser, "Hyper Text Sandwich Van Monitoring

Protocol, Version 3.2". In preparation.

[RFC2295] Holtman, K., and A. Mutz, "Transparent Content Negotiation

in HTTP", RFC 2295, March 1998.

[SAFE] K. Holtman. "The Safe Response Header Field", September 1997.

[CAM] "The Trojan Room Coffee Machine", D. Gordon and M. Johnson,

University of Cambridge Computer Lab,

[CBIO] "The Trojan Room Coffee Pot, a (non-technical) biography", Q.

Stafford-Fraser, University of Cambridge Computer Lab,

[RFC2235] Zakon, R., "Hobbes' Internet Timeline", FYI 32, RFC 2230,

November 1997. See also

[NTP] Mills, D., "Network Time Protocol (Version 3) Specification,

Implementation and Analysis", RFC 1305, March 1992.

[URLI18N] Masinter, L., "Using UTF8 for non-ASCII Characters in

Extended URIs" Work in Progress.

[PLUMB] B. Metcalfe, "Internet Plumber of the Year: Jim Gettys",

Infoworld, February 2, 1998.

[COKE] D. Nichols, "Coke machine history", C. Everhart, "Interesting

uses of networking",>.

10. Author's Address

Larry Masinter

Xerox Palo Alto Research Center

3333 Coyote Hill Road

Palo Alto, CA 94304


11. Full Copyright Statement

Copyright (C) The Internet Society (1998). All Rights Reserved.

This document and translations of it may be copied and furnished to

others, and derivative works that comment on or otherwise explain it

or assist in its implementation may be prepared, copied, published

and distributed, in whole or in part, without restriction of any

kind, provided that the above copyright notice and this paragraph are

included on all such copies and derivative works. However, this

document itself may not be modified in any way, such as by removing

the copyright notice or references to the Internet Society or other

Internet organizations, except as needed for the purpose of

developing Internet standards in which case the procedures for

copyrights defined in the Internet Standards process must be

followed, or as required to translate it into languages other than


The limited permissions granted above are perpetual and will not be

revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an