1. ホーム
  2. Web制作
  3. HTML/Xhtml

フォームフォームにおけるmethod=post/getとデータ転送の違いについて

2022-01-27 12:51:09
Formにはgetとpostという2つのデータ転送方法があり、どちらもデータを送信する方法ですが、実際には大きく異なり、データに深刻な影響を与える可能性があります。ウェブコンテナは変数値を取得しやすくするために両者の違いをある程度隠していますが、この違いを理解しておくと、後のプログラミングで役に立つことがあります。
Formのgetメソッドとpostメソッドは、それぞれデータ転送時のHTTPプロトコルのGETメソッドとPOSTメソッドに相当します。両者の主な相違点は以下の通りです。
1. Getはサーバーからデータを取得するために使用し、Postはサーバーにデータを渡すために使用します。
2. Getはフォームのデータを変数=値という形でアクションの指すURLに追加し、両者を各変数の間に"?"と"&"でつなぐ。Postはフォームのデータをフォームのデータボディに入れ、変数と値が対応する形でアクションの指すURLへ渡すということである。
3. Getは、送信時にデータを要求URLに格納するため、現在の多くの既存サーバ、プロキシサーバ、ユーザエージェントが要求URLをログファイルに記録してどこかに置き、個人情報の一部が第三者に見られる可能性があるため、安全ではありません。また、ユーザーは送信されたデータをブラウザ上で直接見ることができ、システム内部のメッセージも一緒に表示される。
5. Get は Form フォームのデータセットの値を ASCII 文字に制限していますが、Post は ISO10646 文字セット全体をサポートしています。
6、GetはFormのデフォルトメソッドです。
Postで転送したデータはエンコーディングを設定することで正しく中国語に変換されますが、Getで転送したデータはそのままです。今後のプログラムでは、この点に注意しなければならない。
_________________________________________________________________________________________________
1、GetメソッドはURLリクエストでユーザーのデータを渡します。フォームのフィールド名とその内容を文字列のペアで結び、http://www.mdm.com/test.asp?name=asd&password=sadのようにアクション属性で参照するプログラムのurlの後に配置すると、ユーザーがリンクをクリックしたようにデータがurl上に直接表示されます。Postメソッドは、HTTP投稿の仕組みによって、フォームのフィールド名とその内容をHTMLヘッダーに配置し、サーバーに送信します。サーバーは、action属性で指定されたプログラムがフォームデータを読み出し、標準入力(stdin)から処理を行います。
Getメソッドでは変数の値を取得するためにRequest.QueryStringを使用する必要があります。Postメソッドでは送信されたコンテンツにアクセスするためにRequest.Formを使用します。
3. Getメソッドで転送されるデータ量は非常に少なく、一般的に2KB程度に制限されていますが、実行効率はPostメソッドよりも優れています。Postメソッドで転送されるデータ量は比較的多く、サーバーがデータを読み込むのを待っていますが、バイト制限もあり、これは大量のデータによるサーバーへの悪意ある攻撃を避けるためで、Microsoftによれば、Requestで受信できる最大データには制限があるそうです。Form() は、IIS 4 では 80KB バイト、IIS 5 では 100KB バイトに制限されています

推奨します。送信するデータが一度に送信できることが確認されていない限り、Postメソッドを使用するようにしてください。
4、Get方式でデータを送信すると、ログインページなどのセキュリティ問題が発生します。Get方式でデータを送信すると、ユーザー名とパスワードがURLに表示され、ページがキャッシュされたり、他の人がお客様のマシンにアクセスできる場合、履歴からユーザーのアカウント番号とパスワードを取得できるため、フォーム送信にはPost方式の使用をお勧めします。Post方式によるフォーム送信の共通の問題は、ページを更新した場合にダイアログボックスをポップアップすることです。Postメソッドの共通の問題は、ページがリフレッシュされるとダイアログボックスがポップアップすることです
推薦の言葉 : セキュリティ上の理由から、データの送信にはPostを使用することをお勧めします。