フォームの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つだけをチェックできます。

推薦する

あまり一般的ではないが便利な CSS 属性操作の完全ガイド

1. カスタムテキスト選択 ::選択{ 背景: 赤; 色: 黒; } 2. ビデオコントロールからダ...

Nginx ログのカスタマイズとログ バッファの有効化の詳細な説明

序文ウェブサイトのアクセス元をカウントしたい場合は、PHP を使用して情報を取得してデータベースに記...

JavaScript ベースのランダム点呼システムの実装

この記事では、ランダムロールコーラーを実装するためのJavaScriptの具体的なコードを参考までに...

レイアウトサイズを変更するために左右にドラッグする純粋なCSS

ブラウザの非overflow:auto要素resize伸縮機能を利用して、JavaScript を使...

Uniapp WeChatアプレット: キー障害の解決策

ユニアプリコード <テンプレート> <表示> <image v-for...

Nginxはリバースプロキシを使用して負荷分散プロセス分析を実装します

導入dockerコンテナとdocker-composeに基づいて、Linux環境でのdockerの基...

Windows 10 インストール vmware14 チュートリアル図

ソフトウェアのダウンロードソフトウェアのダウンロード リンク: https://pan.baidu....

jsはショッピングカートの加算と減算、価格計算を実装します

この記事の例では、ショッピングカートの加算と減算、価格計算を実装するためのjsの具体的なコードを共有...

React useMemo と useCallback の使用シナリオ

目次メモを使うコールバックの使用メモを使う親コンポーネントが再レンダリングされると、そのすべての要素...

25 個の CSS フレームワーク、ツール、ソフトウェア、テンプレートを共有

スプライトカウダウンロード CSS リントダウンロード プレフィックスダウンロード 1140px C...

JavaScript デザインパターン コマンドパターン

コマンド パターンは、JavaScript デザイン パターンにおける動作デザイン パターンです。定...

jsイベント委譲の詳細な説明

1. 各関数はオブジェクトであり、メモリを占有します。メモリ内のオブジェクトが増えるほど、パフォーマ...

VMware15.5でcentos8.1をインストールし、物理メモリが不足する問題に対処する最も完全なチュートリアル

1. 仮想マシンの準備1. 新しい仮想マシンを作成する 2. 仮想マシンのカスタマイズを選択する 3...

マークアップ言語 -

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

VMware Workstation 14 Pro のインストールとアクティベーションのグラフィック チュートリアル

この記事では、VMware Workstation 14 Proのインストールとアクティベーションに...