B/Sアプリケーションでは、フロントとバックエンドの間のデータ相互作用は、HTMLのフォームフォームを介して完了します。フォームは、2つのデータ送信方法を提供します - 取得と投稿。彼らは両方ともデータを送信する方法ですが、実際に送信されると実際には非常に異なり、データに深刻な影響を与える可能性があります。 Webコンテナは、変動値の取得を促進するために2つの違いをブロックしていますが、将来のプログラミングの2つの違いを理解することは役立ちます。
フォームのGETおよびPOSTメソッドは、データ送信中のHTTPプロトコルのGETおよびPOSTメソッドにそれぞれ対応しています。 2つの主な違いは次のとおりです。
1. GETはサーバーからデータを取得するために使用され、投稿はサーバーにデータを渡すために使用されます。
2。フォーム変数=値のアクションによって指摘されたURLにフォームのデータを追加し、2つの使用「?」接続するには、「&」が各変数を接続します。投稿は、データをデータ本体にフォームに配置し、変数と値が値に対応する方法でアクションによって指し示されたURLに渡すことです。
3。送信プロセス中にデータが要求されたURLに配置されるため、GETは安全ではありません。現在、多くの既存のサーバー、プロキシサーバー、またはユーザーエージェントは、要求されたURLをログファイルに記録し、それをどこかに配置して、サードパーティがいくつかのプライバシー情報を見ることができるようにします。さらに、ユーザーはブラウザに送信されたデータを直接表示することもでき、一部の内部システムメッセージがユーザーの前に表示されます。ポストのすべての操作は、ユーザーには見えません。
4. GETによって送信されるデータの量は少なく、これは主にURLの長さの制限によるものです。投稿は大量のデータを転送できるため、ファイルをアップロードするときにPOSTのみを使用できます(もちろん、別の理由がありますが、後で言及されます)。
5.取得フォームのデータセットの値をASCII文字に制限します。ポストはISO10646文字セット全体をサポートしています。
6。GETはフォームのデフォルトの方法です。
総括する:
取得方法:URL文字列自体にデータパラメーターを渡し、サーバー側の「query_string」変数から直接読み取ることができます。効率的ですが、セキュリティがなく、複雑なデータを処理することはできません(たとえば、サーブレット/JSPでは、ベクトルなどのJava関数を処理できません)。
投稿方法:送信方法に関しては、パラメーターがデータグラムにパッケージ化および送信され、Content_Length環境変数から読み取ります。これは、大きなデータを送信するのに便利です。同時に、データはブラウザのアドレスバーで公開されていないため、セキュリティは比較的高くなりますが、そのような処理効率は影響を受けます。