
formタグはフォームの内容を表現するために使用されます。 これはフォームコントロールとも呼ばれます。 これらのフォームには、その後の処理のためにリモートマシンに送信されるデータに関する情報が入力されています。 フォームの機能には、2つの重要なことが含まれます。前者は、 ACTIONを使用してフォームの内容を処理するプログラムのアドレス指定です。 後に、 METHOD属性を使用してフォームデータが流れるメソッド仕様があります。
ACTION属性は、HTMLフォームの処理方法を記述します。 METHOD属性はデータの送信処理を管理します。 GETおよびPOSTメソッドはMETHOD属性の下にあります。
比較表
比較基準 | 取得する | 役職 |
---|---|---|
パラメータは内側に配置されます | URI | 体 |
目的 | 文書の検索 | データの更新 |
クエリ結果 | ブックマークすることができます。 | ブックマークできません。 |
セキュリティ | 平文に存在するため、脆弱 | GETメソッドより安全 |
フォームデータ型の制約 | ASCII文字のみが許可されています。 | 制約はなく、バイナリデータも許可されています。 |
フォームデータ長 | できるだけ最小限に抑える必要があります。 | あらゆる範囲にある可能性があります。 |
視認性 | 誰でも見ることができます。 | URLに変数を表示しません。 |
可変サイズ | 2000文字まで | 最大8 Mb |
キャッシング | メソッドデータはキャッシュできます。 | データをキャッシュしません。 |
GETメソッドの定義
GETメソッドは、HTMLドキュメントを取得するためにWebサーバーにURLを要求するために使用されます。 HTTPプロトコルの一部としてカウントされる情報をブラウザが配信するのは、従来の方法です。 ブックマークできるように、GETメソッドはURLの形式で表されます。 GETは検索エンジンで広く使用されています。 ユーザーが検索エンジンにクエリを送信した後、エンジンはクエリを実行して結果ページを表示します。 クエリ結果はリンク(ブックマーク)として設定できます。
GETメソッドはアンカーの生成を可能にします。これはフォームを使わないクエリでCGIプログラムにアクセスするのを助けます。 クエリはリンクに構築されるので、リンクが訪問されると、CGIプログラムはデータベースから適切な情報を取得します。
挿入されたデータはURLに表示されるため、GETメソッドにはセキュリティ上の問題がいくつかあります。 ブラウザが通過できるURLの長さは1000文字になる可能性があるため、GETメソッドでは制限された量のデータしか渡すことができません。
GETメソッドに関するもう一つの問題は、それが外国語を扱うことができないということです。 GETメソッドの使用は推奨されていませんが、それでもメソッド属性が定義されていない場合はGETメソッドがデフォルトとして使用されます。
POSTメソッドの定義
POSTメソッドは、大量の情報が通過できる状況で適しています。 サーバーがPOSTを使用するフォームによって要求を受信すると、サーバーは残りの情報を「listen」し続けます。 簡単に言うと、このメソッドは、URLへの要求が行われた直後に入力されたフォームのすべての関連情報を転送します。
POSTメソッドはWebサーバーと2つの連絡先を確立する必要がありますが、GETは1つだけを作成します。 POST内の要求は、スペースがプラス(+)記号で表され、残りの文字がURLパターンでエンコードされるGETメソッドで管理されるのと同じ方法で管理されます。 ファイルのアイテムを送信することもできます。
HTMLにおけるGETメソッドとPOSTメソッドの主な違い
- GETメソッドはURI内にパラメータを配置し、POSTメソッドはパラメータを本体に追加します。
- GETは基本的に情報を取得するために使用されます。 反対に、POSTメソッドの目的はデータを更新することです。
- POSTクエリの結果はブックマークできませんが、GETクエリの結果はURLの形式で存在するためブックマークできます。
- GETメソッドでは、情報がURLに表示されるため、脆弱性とハッキングの危険性が高まります。 これとは対照的に、POSTメソッドはURLに変数を表示せず、複数のエンコード手法を使用することもできます。
- この形式でGETメソッドを使用した場合、データ型にはASCII文字のみが受け入れられます。 それとは反対に、POSTメソッドはフォームのデータ型をバインドせず、ASCII文字だけでなくバイナリも許可します。
- GETメソッドの可変サイズは約2000文字です。 逆に、POSTメソッドでは最大8 Mbの可変サイズが可能です。
- GETメソッドのデータはキャッシュ可能ですが、POSTメソッドのデータはキャッシュできません。
GETの例
ユーザーがhttp // www.example.com / xyz / file1.htmのようにブラウザのロケーションバーに任意のURLを入力したとき 。 アドレスは有効なHTTP GETリクエストに変換されます。たとえば、 GET / xyz / file1.htm HTTP / 1.0です。
その後、この要求はサーバーwww.example.comに転送されます。 リクエストはxyzディレクトリのfile1.htm 、およびそれがHTTPの1.0方言に接続しているかどうかを尋ねます。 ここでは、ユーザーがファイルを送信した後に自分でファイルを取得することはありません。実際には、フォームデータを処理するためにプログラムがバックグラウンドで実行されています。
ユーザーはその実行のためにプログラムの名前でフォームデータを渡す必要があります。 この実行を実現するために、フォーム情報が要求されたURLに追加されます。 //www.example.com/cgi-x/comments.exe?Name=AI+Alena&Age=23&Gender=femaleのように、実際のデータと共に100文字のURLが生成されます。
POSTの例
フォームによって送信されたデータは、 Name = AI + Alena&Age = 23&Gender = femaleのように表示されます。 プログラムはデータを分割してデータを処理します。 POSTメソッドのENCTYPE属性を使用して、フォームデータを異なる方法でエンコードすることができます。
フォームの内容は通常URLには表示されません。その主な利点は、POSTメソッドを使用してかなりの量のデータを送信できることです。
結論
GETメソッドとPOSTメソッドは、データをサーバーに送信するために使用されます。両者の主な違いは、GETメソッドはフォームのaction属性で定義されたURIにデータを追加することです。 逆に、POSTメソッドは要求された本文にデータを添付します。 機密情報をフォームに入力する必要がある場合は、GETメソッドを使用することは不適切です。 POSTメソッドは、ユーザーがパスワードやその他の機密情報を入力する必要がある場合に便利です。