0

What is difference between

HTTPPOST
HTTPDELETE
HTTPPUT
HTTPGET

Normally used post and get method for submit form and i know them very well but want to know with delete and put method when and why they can be used to improve programming skills

4

2 に答える 2

1

一言で言えば:

  • GET=リソースをフェッチします。
  • POST=リソースを更新します。
  • DELETE=リソースを削除します。
  • PUT=リソースを作成/置換します。

HTMLでは、GETとPOSTのみが許可されます。一般的なWeb開発HTTPサーバーは、さまざまなHTTPメソッドで実行する操作を指定するコード(または構成)がない限り、何も実行しません。

GETリクエストに応答してユーザーデータを更新することを妨げるものは何もありませんが、お勧めできません。ブラウザは、リクエストのキャッシュに関してGETとPOSTの処理が異なり(キャッシュされたGETは自動的に再発行されますが、キャッシュされたPOSTはユーザーに再送を許可するように促します)、多くのHTML要素がGETを発行する可能性があるため、更新。他のHTTPメソッドもありますhttp://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

RESTfulであると主張する多くの人々は、HTTPPOSTとPUTをSQLUPDATEとINSERTと混同します。直接的な相関関係はありません。常にコンテキストに依存します。つまり、POSTの意味は、操作しているリソースに完全に依存します。たとえば、ブログに新しいエントリを作成することは、ブログ自体へのPOST、または下位リソースへのPUTである可能性があります。ただし、定義上、 PUTには常にリソース全体が含まれている必要があります。

通常、HTTPクライアントが新しいリソースのURIを決定することを許可しないため、サーバーができない場合にHTTPは適切な応答に対応しますが、/blogへのPOSTは/blog/ article-uriへのPUTよりも安全です。目的のURIを尊重します。(HTTPは単なる仕様であり、それをサポートするコードを作成するか、フレームワークを見つける必要があります)

ただし、部下を担当する親リソースにPOSTすることで(つまり、/ mailbox / message-idにメッセージをPUTする代わりに/mailboxにメッセージをPOSTする) 、常にPUTまたはDELETEのユースケースを実現できるため、 PUTまたはDELETEメソッドを公開します。

システム内のインタラクションの可視性を向上させるためにREST原則を採用することで、プログラミングスキルを向上させることができます。たとえば、統一されたインターフェイスを使用することで、RESTの観点からインタラクションをコンテキスト化する方が簡単な場合があります。

ただし、RESTはHTTPではありません:http ://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm 。

于 2012-07-04T08:31:46.730 に答える
1

さまざまなメソッドが何をするかは、リモート Web サーバーがそれらをどのように解釈するかによって完全に異なります。決まった意味はありません。GETサーバーは、またはを見ても気にしませんPOST。むしろ、リクエストにサービスを提供するために実行されるコードが実行されます (そして、それはコードであるため、何でもすることを決定できます)。

HTTP プロトコルは、各動詞がトリガーするはずのアクションの種類に関する公式のガイドラインを提供します。

  • GET: リソースを取得します
  • PUT: リソースを別のものに置き換えるか、存在しない場合は作成します
  • DELETE: リソースが存在する場合は削除します
  • POST: 何でもできるかもしれません。通常、リソースに「追加」するために使用されます

ただし、このマッピングは最終的にはアプリケーション コードによって管理され、通常は Web アプリケーションでは尊重されません (たとえば、論理的な削除が DELETE ではなく POST で実行されていることがわかります)。

HTTP を介したRESTアーキテクチャについて話すと、状況は良くなります。

于 2012-07-04T07:46:09.447 に答える