1. ホーム
  2. http

[解決済み] POSTとGETの違いは何ですか?[重複しています]。

2022-03-24 23:53:52

質問

私は最近になってPHP/AJAX/jQueryに関わり始めたのですが、これらの技術で重要な役割を果たすのが POSTGET .

まず POSTGET ? 実験を通して、私は以下のことを知っています。 GET は、返す変数とその値をURLの文字列に追加します。

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

しかし POST はしません。

つまり、これだけの違いなのか、それともどちらかを使うための特別なルールや慣習があるのでしょうか?

第二に、私はまた POSTGET PHP以外では、AJAXやjQueryでも使用されています。どのように POSTGET この3つの違いは何ですか?同じアイデア、同じ機能で、利用方法が違うだけなのでしょうか?

解決方法は?

GETPOST は、2つの異なるタイプのHTTPリクエストです。

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

GET は、指定されたリソースの表現を要求します。GETは、ウェブアプリケーションでアクションを起こすような、副作用のある操作に使うべきではないことに注意してください。この理由の一つは、ロボットやクローラが GET を任意に使用する可能性があるためです。ロボットやクローラは、リクエストが引き起こすべき副作用を考慮する必要はありません。

そして

POST は、処理すべきデータ (例: HTML フォームからのデータ) を識別されたリソースに送信します。データはリクエストのボディに含まれます。この結果、新しいリソースが作成されるか、既存のリソースが更新されるか、またはその両方が発生する可能性があります。

つまり、本質的に GET はリモートデータを取得するために使用され POST は、リモートデータの挿入/更新に使用されます。


HTTP/1.1 仕様書 (RFC 2616) 第 9 項 メソッド定義 に関する詳細な情報が含まれています。 GETPOST の他、他のHTTPメソッドもありますので、興味があればご覧ください。

この仕様では、各メソッドの意図する用途を説明するだけでなく、少なくともひとつの実用的な理由も示しています。 GET は、データを取得するためにのみ使用されるべきである。

HTTPプロトコルを使用するサービスの作者は、機密データを送信するためにGETベースのフォームを使用するべきではない[SHOULD NOT]。既存の多くのサーバー、プロキシ、そしてユーザーエージェントは、第三者が見ることができる場所にリクエストURIを記録します。サーバーは代わりにPOSTベースのフォーム送信を使用することができます。


最後に GET AJAX リクエストの結果をキャッシュするブラウザがあります。 GET リクエストに対応します。そのため、例えば、同じ GET をリクエストすると、たとえ問い合わせたデータがサーバーサイドで更新されていたとしても、常に同じ結果が返されます。この問題を軽減する一つの方法は、タイムスタンプを付加することによって、各リクエストでURLを一意にすることです。