フォームのmethod=post/getの違い

フォームのmethod=post/getの違い
フォームは、get と post の 2 つのデータ転送方法を提供します。どちらもデータを送信する方法ですが、実際の送信方法は非常に異なり、データに重大な影響を与える可能性があります。 Web コンテナーは変数値の取得を容易にするために 2 つの違いの一部を隠していますが、2 つの違いを理解しておくと、将来のプログラミングに非常に役立ちます。

フォームの get メソッドと post メソッドは、データ転送時に HTTP プロトコルの GET メソッドと POST メソッドにそれぞれ対応します。両者の主な違いは次のとおりです。

1. Get はサーバーからデータを取得するために使用され、Post はサーバーにデータを渡すために使用されます。

2. Get は、フォーム内のデータを、変数 = 値の形式で action が指す URL に追加し、両者を「?」で接続し、各変数を「&」で接続します。Post は、フォーム内のデータをフォームのデータ本体に格納し、変数と値の対応する形式で action が指す URL に渡します。

3. Get は、送信プロセス中に要求された URL にデータが配置されるため、安全ではありません。多くの既存のサーバー、プロキシ サーバー、またはユーザー エージェントは、要求された URL をログ ファイルに記録し、それをどこかに置きます。この方法では、一部の個人情報が第三者に見られる可能性があります。さらに、ユーザーは送信されたデータをブラウザ上で直接確認することもでき、一部の内部システムメッセージもユーザーに表示されます。すべての投稿操作はユーザーには見えません。

4. Get で送信されるデータ量は少なく、これは主に URL の長さの制限によるものです。一方、Post は大量のデータを送信できるため、ファイルをアップロードするときには Post のみを使用できます (もちろん、別の理由もありますが、これについては後で説明します)。

5. Get は、Form フォームのデータ セットの値を ASCII 文字に制限しますが、Post は ISO10646 文字セット全体をサポートします。

6. Get は Form のデフォルト メソッドです。

Post で送信されたデータは、エンコードを設定することで正しく中国語に変換できますが、Get で送信されたデータは変更されません。今後の手続きではこの点に注意する必要があります。

_________________________________________________________________________________________________

1. Get メソッドは、URL 要求を通じてユーザー データを送信します。フォーム内の各フィールドの名前とその内容を文字列のペアで結び付け、http://www.mdm.com/test.asp?name=asd&password=sad のように、action 属性で指定されているプログラムの URL の後ろに配置します。ユーザーがリンクをクリックするのと同じように、データは URL に直接表示されます。Post メソッドは、HTTP ポスト メカニズムを使用して、フォーム内の各フィールドの名前とその内容を HTML ヘッダーに配置し、action 属性で指定されているプログラムで処理できるようにサーバー側に送信します。プログラムは、標準入力 (stdin) メソッドを通じてフォーム データを読み取って処理します。

2. Getメソッドは変数の値を取得するためにRequest.QueryStringを使用する必要がありますが、Postメソッドは送信されたコンテンツにアクセスするためにRequest.Formを使用します。

3. Get メソッドで送信されるデータ量は非常に少なく、通常は約 2 KB に制限されていますが、実行効率は Post メソッドよりも優れています。Post メソッドで送信されるデータ量は比較的多く、サーバーがデータを読み取るのを待ちますが、バイト制限もあります。これは、大量のデータによるサーバーへの悪意のある攻撃を回避するためです。Microsoft によると、Microsoft は Request.Form() を使用して受信できる最大データに制限を設けており、IIS 4 では 80 KB、IIS 5 では 100 KB です。

提案: 送信するデータが一度に送信できるかどうか確信が持てない場合は、Post メソッドを使用してください。

4. Get メソッドを使用してデータを送信すると、セキュリティ上の問題が発生します。たとえば、ログイン ページで Get メソッドを使用してデータを送信すると、ユーザー名とパスワードが URL に表示されます。ページがキャッシュされるか、他の人がクライアントのマシンにアクセスできる場合、履歴レコードからユーザーのアカウントとパスワードを取得できます。したがって、フォームの送信には Post メソッドを使用することをお勧めします。Post メソッドを使用して送信されたフォーム ページでよくある問題は、ページを更新するとダイアログ ボックスがポップアップ表示されることです。

提案: セキュリティ上の理由から、データの送信にはPostを使用することをお勧めします

<<:  デザイン参考 WordPressウェブサイト構築成功事例

>>:  CSSはラジオをクリックして2つの画像スタイルを切り替えますが、複数のラジオのうち1つだけをチェックできます。

推薦する

JavaScriptにおける評価戦略の詳細な説明

目次それを覆う栗パラメータの受け渡し値渡し共同配送要約する拡張機能 - 遅延評価私は最近、JavaS...

mysql8.0.19 winx64バージョンのインストール問題を解決する

MySQL は、スウェーデンの会社 MySQL AB によって開発されたオープンソースの小規模なリレ...

一般的な Dockerfile コマンドの使用方法の紹介

目次01 CM 02 エントリーポイント03 ワークディレクトリ04 環境05 ユーザー06巻07 ...

JSが5つ星の賞賛を獲得

この記事では、5つ星の評価を獲得するためのJSの具体的なコードを参考までに共有します。具体的な内容は...

VMware vSphere 6.7 (ESXI 6.7) のグラフィック インストール手順

環境: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-8169922...

Vue の動的メニュー、動的ルートの読み込みと更新の落とし穴

目次必要:アイデア:レッスン:テキストを共有する:要約する必要:インターフェイスからサブメニュー デ...

ウェブデザインにおける円形要素の使用例 25 選

本日の投稿では、Web デザインで使用される円形要素の優れた例をいくつか挙げ、美しい丸いボタン、メニ...

Apache Webサーバーのインストールと設定方法

信頼性が高く、人気があり、簡単に構成できる Web サーバーである Apache で独自の Web ...

CSSは座席選択効果を実現するためにautoflow属性を使用する

1. 自動フロー属性、要素コンテンツの長さと幅が要素自体の長さと幅を超える場合、スクロールバーが表示...

Dockerfile における ENV 命令の具体的な使用法の詳細な説明

1. Dockerfile 内の ENV 命令は、イメージの環境変数を定義するために使用されます。次...

ウェブページのコメントにより IE でテキストがオーバーフローする

実験コードは次のとおりです。 </head> <body> <div ...

さまざまなSQL結合を簡単に学ぶ

SQL JOIN 句は、テーブル間の共通フィールドに基づいて 2 つ以上のテーブルの行を結合するため...

MySQLに絵文字表現を挿入する方法

序文今日、オープンソース プロジェクトのフィードバック フォームを設計していたところ、絵文字表現を挿...

nginx で仮想ホストを構成するための詳細な手順

仮想ホストは、インターネット上で実行されているサーバー ホストを複数の「仮想」ホストに分割する特殊な...

ウェブデザインとは何か

<br />元の記事: http://www.alistapart.com/articl...