基本的に、はい、すべての「エンティティ」との異なる「相互作用」を可能にするメソッドがあります。HTTP は、各 URL を 1 つのエンティティとして考えることができるように設計されています。
/usersすべてのユーザーを表します
/users/dave1 人の特定のユーザーを表します
POST /users新しいユーザーを作成できます
PUT /users/dave特定のユーザーを変更できます
GET /usersユーザーのリストを取得します
GET /users?name=dave「dave」という名前のユーザーのリストを照会できます
等々...
HTTP はこのように使用されるように設計されており、各動詞には特定の暗黙の意味があります。これらの動詞は本当に好きなように使用できますが、GET「受動的な」情報検索を意味し、 while POST、PUTおよびDELETE破壊的な変更を意味します。
ブラウザーと他のクライアントでは、これらの処理が異なります。いつでも何GET回でもリクエストでき、キャッシュでき、プリフェッチでき、ほとんど順不同でクエリできることが期待されます。より破壊的なアクションは、要求されたときに 1 回だけ実行する必要があり、キャッシュ、プリフェッチなどは行わないでください。経由でリクエストされたページを「リロード」している場合、ブラウザは明示的に確認を求めますPOST。
POST フォームは「バックグラウンドで」データを送信しますが、GET はそれらを URL で渡します。プロトコルと関係がありますか、それとも単なるブラウザの慣例ですか?
「裏で」というのは間違った考え方です。違いは、URLとリクエストの本文です。リクエストは、そのGETリクエスト本文に何も含めるべきではありません/含めてはなりません。繰り返しになりますが、これは受動的な情報取得のみであり、HTTP ヘッダーのみで構成されている必要があります。POSTリクエストにはリクエストボディを含めることができます。リクエストの URLと本文の両方に「データ」を含めることができます。GET繰り返しになりますが、 URL は単に情報にリンクしているだけなので、URL は共有して渡すことができると想定されています。POST一方、リクエストは慎重に行う必要があるため、その情報を URL に含める必要はありません。