GET
とPOST
は2つの異なるタイプのHTTPリクエストです。
ウィキペディアによると:
GETは、指定されたリソースの表現を要求します。GETは、Webアプリケーションでアクションを実行するために使用するなど、副作用を引き起こす操作には使用しないでください。この理由の1つは、GETがロボットまたはクローラーによって任意に使用される可能性があるためです。これにより、要求によって発生する可能性のある副作用を考慮する必要がなくなります。
と
POSTは、処理されるデータ(たとえば、HTMLフォームから)を識別されたリソースに送信します。データはリクエストの本文に含まれています。これにより、新しいリソースが作成されるか、既存のリソースが更新されるか、またはその両方が発生する可能性があります。
したがって、基本的GET
にリモートデータの取得に使用され、リモートデータのPOST
挿入/更新に使用されます。
HTTP / 1.1仕様(RFC 2616)セクション9
メソッド定義には、他のHTTPメソッドに関する詳細情報
GET
と、
POST
興味がある場合は他のHTTPメソッドが含まれています。
GET
各メソッドの使用目的を説明することに加えて、仕様には、データの取得にのみ使用する必要がある理由の少なくとも1つの実用的な理由も記載されています。
HTTPプロトコルを使用するサービスの作成者は、機密データの送信にGETベースのフォームを使用しないでください。これにより、このデータがRequest-URIにエンコードされるためです。多くの既存のサーバー、プロキシ、およびユーザーエージェントは、サードパーティに表示される可能性のある場所にリクエストURIを記録します。サーバーは、代わりにPOSTベースのフォーム送信を使用できます
GET
最後に、 AJAXリクエスト
に使用する際の重要な考慮事項は、一部のブラウザ(特にIE)が
GET
リクエストの結果をキャッシュすることです。したがって、たとえば、同じ
GET
リクエストを使用してポーリングすると、クエリしているデータがサーバー側で更新されている場合でも、常に同じ結果が返されます。この問題を軽減する1つの方法は、タイムスタンプを追加して、リクエストごとにURLを一意にすることです。