他の動詞はすべて意味がありますが、動詞としての「投稿」の文脈はあまりありません。それは郵便局のポストのようなものですか (これは筋が通っているように見えますが)、それとも掲示板のポストのようなポスト (私にはあまり意味がありません) ですか? 誰が「POST」を決めたのか、なぜ選ばれたのか知っている人はいますか?
3 に答える
そうですね、「掲示板に投稿するような投稿」は答えにかなり近いと思います。結局、それはまさにこのメソッドが設計された機能の1つです。POST
常に、ある種の「ファクトリ」に何かを投稿して処理することを目的としています。それ以外の場合は、を使用できますPUT
。RFC2616のセクション9.5を見てみましょう。
POSTメソッドは、リクエストに含まれるエンティティを、リクエストラインのリクエストURIで識別されるリソースの新しい従属としてオリジンサーバーが受け入れるようにリクエストするために使用されます。POSTは、統一されたメソッドが次の機能をカバーできるように設計されています。
- Annotation of existing resources; - Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles; - Providing a block of data, such as the result of submitting a form, to a data-handling process; - Extending a database through an append operation.
もちろん、これはなぜそれが呼ばれるのかについての正確な定義ではありませんが、これはPOST
その背後にある考え方についてのいくつかの手がかりを与えるかもしれないと思います。
たぶん、「投稿」という単語のいくつかの意味を見ることができるかもしれません(http://www.thefreedictionary.com/Post、3番目の定義)-それによると、動詞としての投稿は意味することができます
- 郵送するには(手紙またはパッケージ)
- 最新のニュースを知らせるため
- 簿記の元帳に(アイテム)を転送する
- (元帳)に必要なエントリを作成するには
そして、これはまさにPOST
(比喩的に)何をするかです。電子メールを送信する場合は、電子メールプロバイダーに処理させてから、状態について通知します。そして、これはとの違いでもありPUT
ますPOST
。クライアントがリソースの処理を担当している場合は、PUT
(何を配置し、どこに配置するかがわかっているため)を使用します。
したがって、理論的には、電子メールを送信したい相手のIPアドレスを知っていれば、プロバイダーがこのようなものを見つける必要はありません。しかし今、あなたは何を置くべきかを知っていますが、正確にはどこに置くべきかではありません。したがって、この場合はを使用しますPOST
。「最新ニュースをサーバーに通知する」と、サーバーがそれをどこに置くかを決定します。したがって、すでに存在するリソース(フォーラムのスレッドなど)に「アイテムを転送する」と考えることができます。何かを追加したいだけです。
これが理にかなっているといいのですが...
POSTメソッドは、リクエストに含まれるエンティティを、リクエストラインのリクエストURIで識別されるリソースの新しい従属としてオリジンサーバーが受け入れるようにリクエストするために使用されます。POSTは、統一されたメソッドが次の機能をカバーできるように設計されています。
- 既存のリソースの注釈。
- 掲示板、ニュースグループ、メーリングリスト、または同様の記事のグループにメッセージを投稿する。
- フォームの送信結果などのデータのブロックをデータ処理プロセスに提供する。
- 追加操作によるデータベースの拡張。
RESTは、開発者にHTTPメソッドを明示的に使用し、プロトコル定義と一致する方法で使用するように求めます。この基本的なREST設計原則は、作成、読み取り、更新、および削除(CRUD)操作とHTTPメソッドの間の1対1のマッピングを確立します。このマッピングによると:
- サーバー上にリソースを作成するには、POSTを使用します。
- リソースを取得するには、GETを使用します。
- リソースの状態を変更または更新するには、PUTを使用します。
- リソースを削除または削除するには、DELETEを使用します。
POSTを実行しているときは、実際には新しいデータを送信しています(リソースを作成しています)が、データを取得したり、更新について呼び出したり、古いドキュメントを細断処理したりすることはありません。
「手紙を投函する」のような投函は大したことではないと思います。POST リクエストは、結局のところ、データを含むメッセージです。who に関しては、動詞は HTTP に由来するため、起源は 1995 年に Tim Berners-Lee によって書かれた Html 仕様になります。