POST
私は最近になって PHP/AJAX/jQuery に関わり始めたのですが、これらのテクノロジーの重要な部分はとであるように思われますGET
。
POST
まず、との違いは何でしょうか?実験を通して、は返される変数とその値をURL文字列に追加するGET
ことがわかりました。GET
website.example/directory/index.php?name=YourName&bday=YourBday
しかし、POST
そうではありません。
それで、これが唯一の違いですか、それともどちらか一方を使用するための特定のルールや慣例がありますか?
次に、 PHP 以外でも、AJAX や jQuery でも、およびを見ました。これら 3 つの違いは何でしょうかPOST
?同じ考え方、同じ機能で、利用方法が異なるだけでしょうか?GET
POST
GET
ベストアンサー1
GET
これらはPOST
2 つの異なるタイプの 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 を一意にすることです。