ASP チュートリアルの HTTP リクエストとフォームには 5 つの違いがあります。必要な場合は、ASP チュートリアルの GET POST 送信フォームの次の 5 つの違いについて学習してください。
Get メソッドと Post メソッドには 5 つの違いがあります
1. Get はサーバーからデータを取得すること、post はサーバーにデータを送信することです。
2. 送信されたフォームの ACTION 属性が指す URL にパラメータ データ キューを追加します。値はフォーム内の各フィールドに 1 対 1 で対応し、URL で確認できます。 Post は、HTTP post メカニズムを使用して、フォームの各フィールドとそのコンテンツを HTML HEADER に配置し、それを ACTION 属性が指す URL アドレスに送信します。ユーザーはこのプロセスを見ることができません。
3. get メソッドの場合、サーバー側は Request.QueryString を使用して変数の値を取得します。 post メソッドの場合、サーバー側は Request.Form を使用して送信されたデータを取得します。
4. get によって転送されるデータの量は少量であり、2KB を超えることはできません。郵便で送信されるデータの量は比較的多く、通常はデフォルトでは制限がありません。ただし、理論上、最大量は IIS4 では 80 KB、IIS5 では 100 KB です。
5. get のセキュリティは非常に低く、post のセキュリティは高くなります。
HTTP リクエスト: GET メソッドと POST メソッドの違い
HTTP では、サーバーと対話するためのさまざまなメソッドが定義されており、最も基本的なメソッドは GET と POST です。実際、GET はほとんどのリクエストに適していますが、POST はサイトの更新のみに予約されています。 HTTP 仕様によれば、GET は情報の取得に使用され、安全かつ冪等である必要があります。安全とは、操作が情報を変更するのではなく取得するために使用されることを意味します。言い換えれば、GET リクエストには通常、副作用があってはなりません。冪等とは、同じ URL に対する複数のリクエストが同じ結果を返す必要があることを意味します。完全な定義は、思っているほど厳密ではありません。基本的に、目標は、ユーザーがリンクを開いたときに、そのリソースが自分の観点から変更されていないことを確信できるようにすることです。 たとえば、ニュース サイトのトップ ページは常に更新されます。 2 番目のリクエストは別のニュースのバッチを返しますが、常に最新のニュースを返すため、この操作は安全で冪等であると考えられます。逆に。 POST リクエストはそれほど簡単ではありません。 POST は、サーバー上のリソースを変更する可能性のあるリクエストを表します。引き続きニュース サイトを例にとると、記事に対する読者の注釈は POST リクエストを通じて実装する必要があります。これは、注釈が送信された後はサイトが異なるためです (たとえば、記事の下に注釈が表示されます)。
フォームを送信するとき、メソッドが指定されていない場合、デフォルトは GET リクエストであり、フォームに送信されたデータは、? で区切られて URL に追加されます。英数字はそのまま送信されますが、スペースは + 記号に変換され、その他の記号は %XX に変換されます。XX は、記号の 16 進数の ASCII (または ISO Latin-1) 値です。 GET リクエストによって送信されたデータは HTTP リクエスト プロトコル ヘッダーに配置されますが、POST によって送信されたデータはエンティティ データに配置されます。GET によって送信されたデータは最大 1024 バイトまでしか許可されませんが、POST にはこの制限がありません。
フォームでの post と get の使用の違いは何ですか?
フォームでは、post または get を使用できます。これらはすべてメソッドの正当な値です。ただし、post メソッドと get メソッドの使用には少なくとも 2 つの違いがあります。
1. Get メソッドは、URL リクエストを通じてユーザー入力を渡します。 Post メソッドは別の形式を取ります。
2. Get モードで送信する場合は、Request.QueryString を使用して変数の値を取得する必要があります。Post モードで送信する場合は、Request.Form を通じて送信されたコンテンツにアクセスする必要があります。
以下のコードを注意深く調べてください。実行して感触を得ることができます。
コード
引用した内容は以下の通りです。
<!--2 つのフォームの唯一の違いは Method 属性です-->
次のようにコードをコピーします。
<FORM ACTION=getpost.php チュートリアル METHOD=get>
<INPUT TYPE=テキスト NAME=テキスト VALUE=Hello World></INPUT>
<INPUT TYPE=submit VALUE=Method=Get></INPUT>
</FORM>
<BR>
<FORM ACTION=getpost.php METHOD=post>
<INPUT TYPE=テキスト NAME=テキスト VALUE=Hello World></INPUT>
<INPUT TYPE=送信 VALUE=メソッド=投稿></INPUT>
</FORM>
<? Request.QueryString(Text) <> の場合 ?>
get メソッドを通じて渡される文字列は次のとおりです: <B><?= Request.QueryString(Text) ?></B><BR>
<? 終了の場合?>
<? Request.Form(Text) <> の場合 ?>
Post メソッドを通じて渡される文字列は次のとおりです: <B><?= Request.Form(Text) ?></B><BR>
<? 終了の場合?>
説明する
上記のコードを getpost.asp として保存し、実行します。この時点では、ブラウザーの URL は変更されておらず、返される結果は次のとおりです。
Post メソッドを通じて渡される文字列は次のとおりです: Hello World
次に、get メソッドを使用してテストが送信されます。ブラウザーの URL は次のようになります。
http://localhost/general/form/getpost.php?Text=Hello+World
そして返される結果は次のとおりです。
get メソッドで渡される文字列は次のとおりです: Hello World
最後に、post メソッドを通じて送信します。ブラウザの URL は次のとおりです。
http://localhost/general/form/getpost.php?Text=Hello+World
そして返される結果は次のようになります。
get メソッドで渡される文字列は次のとおりです: Hello World
Post メソッドを通じて渡される文字列は次のとおりです: Hello World
ヒント
get メソッドを通じてデータを送信すると、セキュリティ上の問題が発生する可能性があります。たとえば、ランディング ページ。 get メソッドを介してデータを送信すると、ユーザー名とパスワードが URL に表示されます。もし:
1. ログイン ページはブラウザによってキャッシュできます。
2. 他の人が顧客のマシンにアクセスできます。
その後、他人がブラウザの履歴から顧客のアカウント番号とパスワードを読み取ることができます。したがって、場合によっては、get メソッドが重大なセキュリティ上の問題を引き起こす可能性があります。
提案
Formではpostメソッドの使用を推奨します。