ホームページ >バックエンド開発 >PHPチュートリアル >Ajaxのgetメソッドとpostメソッドの違い

Ajaxのgetメソッドとpostメソッドの違い

巴扎黑
巴扎黑オリジナル
2016-12-01 11:45:051816ブラウズ

1. get() と post() の基本的な違い

1. get は、送信されたフォームの ACTION 属性が指す URL にパラメーター データ キューを追加します。 -one、URLに表示されます。 Post は、HTTP post メカニズムを使用して、フォーム内の各フィールドとそのコンテンツを HTML HEADER に配置し、それを ACTION 属性が指す URL アドレスに送信します。ユーザーはこのプロセスを見ることができません。

2. get メソッドの場合、サーバー側は Request.QueryString を使用して変数の値を取得します。 post メソッドの場合、サーバー側は Request.Form を使用して送信されたデータを取得します。どちらの方法でもパラメータはリクエストを使用して取得できます。

3. get によって転送されるデータの量は少なく、2KB を超えることはできません。郵便で送信されるデータの量は比較的多く、通常はデフォルトでは制限がありません。ただし、理論上はサーバーごとに異なります。

4.get のセキュリティは非常に低いですが、post のセキュリティは高いです。

5.

は と同じです。たとえば、メソッドが get の場合、アクション ページの最後にあるパラメーター リストは無視され、 は異なります。

2. Ajax Get と Post の違いについて説明します

1. Get メソッド
get メソッドを使用して単純なデータを送信しますが、サイズは通常 1KB に制限されます。データは URL に追加されて送信されます (http ヘッダー)。つまり、ブラウザは、各フォーム フィールド要素とそのデータを、URL パラメータの形式でリクエスト ラインのリソース パスに追加します。最も重要な点は、クライアントのブラウザによってキャッシュされるため、他の人がブラウザの履歴からアカウント番号やパスワードなどの顧客データを読み取ることができるということです。したがって、場合によっては、get メソッドが重大なセキュリティ問題を引き起こす可能性があります。

Ajax送信リクエスト: 取得リクエストの場合送信(パラメータ)パラメータ: nullまたはxhr.send();

取得リクエスト(パラメータ)の場合はxhr.setRequestHeader(header, value)を設定する必要はありません; パラメータが空でない場合は、request.getMethod()メソッドでリクエストメソッドを取得できます

getメソッドを使用する場合は注意してください

(1) get リクエスト (またはパラメータを渡す URL を伴うもの) の場合、渡されたパラメータはまず

encodeURIComponent メソッドによって処理される必要があります。 例: var url = "update.php?username=" +encodeURIComponent(username) + " &content=" + encodeURIComponent


(content)+"&id=1" ;

2.Post メソッド:

POST メソッドを使用すると、ブラウザは各フォーム フィールド要素とそのデータをエンティティ コンテンツとして Web サーバーに送信します。 URL アドレスのパラメータとして HTTP メッセージが渡されるのではなく、POST メソッドを使用して送信されるデータ量は、GET メソッドを使用して送信されるデータ量よりもはるかに多くなります

リクエスト送信: 投稿リクエストの場合は送信 (パラメータ) パラメーター: パラメーターは null または


xhr にすることができます。send()|send (パラメーター付き) ポストリクエストは、値を渡すときに xhr.setRequestHeader(header,value) を設定する必要があります。 Context-Type は application/x-www-form-

urlencode は、サーバーがエンティティにパラメーター変数があることを認識できるようにします。通常は、

SetRequestHeader("Context-Type","application/x-www-form-urlencoded of the XmlHttpRequest object ;") を使用します。例:

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")

(2) パラメーターは、名前と値が 1 対 1 で対応するキーと値のペアです。値の各ペアはアンパサンドを使用します。たとえば、var name=abc&sex=man


&age=18 var name=update.php?abc&sex=man&age=18 と var name=?abc&sex=man

であることに注意してください。 &age=18 は両方とも正しく記述されていません;

( 3)。パラメータは Send (parameter) メソッドで送信されます。例: xmlHttp.send(name); get メソッドの場合は、直接 xmlHttp.send(null);

(4). サーバー側のリクエストパラメータは Get と Post を区別します。 get メソッドの場合は $username = $_GET["username"]; post メソッドの場合は $username = $_POST["username"];


つまり、GET メソッドはデータ量が少なく処理効率が高いため、セキュリティが低くキャッシュされますが、POST の場合はその逆です。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。