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

推薦する

HTML ファイルにフラッシュ ビデオ形式 (flv、swf) ファイルを埋め込む方法

Flash ファイル形式: .FLV および .SWFフラッシュ ビデオ形式には、.flv と .s...

Tomcat の設定と Eclipse での起動方法

目次Tomcat8のインストールと設定方法tomcat ダウンロードTomcat マネージャーを有効...

Mysql マルチテーブル結合クエリの実行の詳細について簡単に説明します。

まず、このブログのケースデモンストレーション テーブルを作成します。 create table a(...

PostgreSQL データベースにおける varchar、char、text の比較に関する簡単な説明

以下のように表示されます。名前説明する文字可変(n)、varchar(n)長さ制限あり、可変長文字(...

Linux オペレーティング システムの概要と紹介

目次1. オペレーティングシステムとは何か2. Linuxの起源3. Linuxの基本機能4. Li...

HTML onfocus gain focus および onblur lose focus イベントの詳細な説明

HTML onfocus イベント属性定義と使用法onfocus 属性は、要素がフォーカスを受け取っ...

Nginx URL 書き換えメカニズムの原理と使用例

URL 書き換えは、Web サイトの優先ドメインを決定するのに役立ちます。同じリソース ページの複数...

MySQL 8.0 パスワード有効期限ポリシーの詳細な説明

MySQL 8.0.16 以降では、パスワードの有効期限ポリシーを設定できます。今日は、この小さな知...

Element-ui レイアウト (行と列コンポーネント) の実装

目次基本的な手順と使用方法行コンポーネントの分析レンダリング機能ソースコード分析Col成分の分析コン...

WEB中国語フォントアプリケーションガイド

Web 上でフォントを使用することは、基本的なスキルであると同時に芸術でもあります。英語のフォントに...

MySQL 8.0.15 winx64 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.15 winx64 圧縮パッケージのインストールと設定方法を参考ま...

Lua モジュールを使用して WAF を実装する Nginx の原理の分析

目次1. WAFの背景2. WAFとは3. 動作原理4. WAF機能5. WAFと従来のファイアウォ...

CentOS システムのディスク パーティションを拡張する方法

問題/障害/シナリオ/要件Eve-ng の仮想マシン OVA のハードディスクは 38G しかないた...

Vue は書籍管理ケースを実装します

この記事では、書籍管理を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次の...

jsネイティブ構文プロトタイプ、__proto__、コンストラクタの徹底的な理解

目次1 はじめに2 前提条件2.1 データ型2.2 それが自身のプロパティであるかどうかを判断する ...