POSTとGETの違いは何ですか?[重複] 質問する

POSTとGETの違いは何ですか?[重複] 質問する

POST私は最近になって PHP/AJAX/jQuery に関わり始めたのですが、これらのテクノロジーの重要な部分はとであるように思われますGET

POSTまず、との違いは何でしょうか?実験を通して、は返される変数とその値をURL文字列に追加するGETことがわかりました。GET

website.example/directory/index.php?name=YourName&bday=YourBday

しかし、POSTそうではありません。

それで、これが唯一の違いですか、それともどちらか一方を使用するための特定のルールや慣例がありますか?

次に、 PHP 以外でも、AJAX や jQuery でも、およびを見ました。これら 3 つの違いは何でしょうかPOST?同じ考え方、同じ機能で、利用方法が異なるだけでしょうか?GETPOSTGET

ベストアンサー1

GETこれらはPOST2 つの異なるタイプの HTTP リクエストです。

によるとウィキペディア:

GET は、指定されたリソースの表現を要求します。Web アプリケーションでアクションを実行する場合など、副作用を引き起こす操作には GET を使用しないでください。その理由の 1 つは、GET はロボットやクローラーによって任意に使用される可能性があり、リクエストによって発生する副作用を考慮する必要がないためです。

そして

POST は、処理するデータ (HTML フォームなど) を指定されたリソースに送信します。データはリクエストの本文に含まれます。これにより、新しいリソースの作成、既存のリソースの更新、またはその両方が行われる場合があります。

したがって、基本的にはGETリモート データを取得するために使用され、POSTリモート データを挿入/更新するために使用されます。


HTTP/1.1 仕様 (RFC 2616) セクション 9 メソッドの定義 興味があれば、 と およびその他の HTTP メソッド GET に関する 詳細情報を参照してください 。 POST

仕様では、各メソッドの使用目的を説明するだけでなく、GETデータの取得にのみ使用すべき実用的な理由を少なくとも 1 つ示しています。

HTTPプロトコルを使用するサービスの作者は、機密データの送信にGETベースのフォームを使用すべきではありません。これは、このデータがリクエストURIにエンコードされるためです。多くの既存のサーバー、プロキシ、およびユーザーエージェントは、第三者に見える可能性がある場所にリクエストURIを記録します。サーバーは代わりにPOSTベースのフォーム送信を使用できます。


最後に、AJAX リクエストに使用する場合の重要な考慮事項 GET は、一部のブラウザ (特に IE) が GET リクエストの結果をキャッシュすることです。そのため、たとえば同じ GET リクエストを使用してポーリングすると、クエリ対象のデータがサーバー側で更新されている場合でも、常に同じ結果が返されます。この問題を軽減する 1 つの方法は、タイムスタンプを追加して、リクエストごとに URL を一意にすることです。

おすすめ記事