ホームページ > ウェブフロントエンド > htmlチュートリアル > GET POST_HTML/Xhtml_Webページ制作の違いを詳しく解説

GET POST_HTML/Xhtml_Webページ制作の違いを詳しく解説

WBOY
リリース: 2016-05-16 16:43:07
オリジナル
1232 人が閲覧しました

1. Get はサーバーからデータを取得するために使用され、Post はサーバーにデータを転送するために使用されます。
2. Get は、アクションが指す URL にフォーム内のデータを変数=値の形式で追加し、その 2 つを「?」で接続し、各変数を「&」で接続します。 to フォーム内のデータはフォームのデータ本体に配置され、対応する変数と値に従ってアクションが指す URL に渡されます。
3. 送信プロセス中にデータがリクエストされた URL に配置され、多くの既存のサーバー、プロキシ サーバー、またはユーザー エージェントがリクエストされた URL をログ ファイルに記録し、どこかに保存されるため、Get は安全ではありません。第三者に見られる個人情報。さらに、ユーザーは送信されたデータをブラウザ上で直接確認することもでき、一部の内部システム メッセージがユーザーの目の前に表示されます。すべての Post 操作はユーザーには表示されません。
4. Get で転送されるデータの量は主に URL の長さによって制限されるためです。一方、Post は大量のデータを転送できるため、ファイルをアップロードする場合にのみ Post を使用できます (もちろん、別のものがあります)。理由は後述します))。
5. Get はフォーム フォーム内のデータ セットの値を ASCII 文字に制限しますが、Post は ISO10646 文字セット全体をサポートします。デフォルトでは ISO-8859-1 エンコード
を使用します。6. Get は Form のデフォルトのメソッドです。
次の比較は非常に役立ちます:
私はしばらく Java Web 開発を行ってきましたが、いつも悩まされる問題があります。それは文字化けです。基本的に、私はオンラインで解決策を探していました (オンラインには本当にたくさんの情報があります)。この種の文字化けしたコードの問題を解決する方法については多くの紹介がありましたが、その詳細を説明しているものはほとんどありませんでした。いくつかの記事を読んだ後は、理解できたと思ったこともありますが、開発中は文字化けしたコードの問題が幽霊のように現れ、人々を怖がらせます。この記事は、私が長年文字化けと格闘してきたことを少しだけまとめたものであり、より多くの友人がアドバイスや補足をしてくれることを願っています。
フォームには、サーバーにデータを送信するための 2 つのメソッド (get と post) があります。それぞれについて説明します。
(1) 送信の取得
1. まず、クライアント (ブラウザ) フォームが get メソッドを使用してデータをエンコードし、サーバーに送信する方法について説明します。

get メソッドの場合、データはリクエストされた URL の後ろに次のようにパラメータとして連結されます。 http://localhost:8080/servlet?msg=abc
(非常によくある文字化けの問題です) http://localhost:8080 /servlet?msg=Hangzhou などの URL に中国語またはその他の特殊文字が含まれる場合、URL スプライシングが完了すると、サーバー側で文字化けが発生しやすくなります。ブラウザは URL をエンコードしてからサーバーに送信します。URL エンコードのプロセスでは、URL の一部を文字として使用し、特定のエンコード方式 (utf-8 など) に従ってバイナリ バイトコードにエンコードします。 gbk など)、3 文字の文字列 "%xy" で表されるを使用します。ここで、xy はバイトの 2 桁の 16 進表現です。ここで私が話していることは明確ではないかもしれません。詳細については、ここで java.net.URLEncoder クラスの概要を参照してください。 URL エンコードのプロセスを理解すると、2 つの非常に重要な問題がわかります。まず、URL エンコードが必要な文字は (一般的に) 非 ASCII 文字であり、より一般的に言えば、英語の文字以外のテキストです ( : 中国語、日本語など) は URL エンコードする必要があるため、英語の文字を含む URL では、URL 内の中国語または特殊文字が原因で文字化けが発生することはありません。 URL エンコードは文字をエンコードするために使用するエンコード方式ですか?これはブラウザーの問題であり、ブラウザーごとにアプローチが異なります。通常、中国語版のブラウザーでは、ブラウザーの設定によって UTF-8 を使用することもできます。多くの Web サイトでは、JavaScript を使用して URL 内の中国語または特殊文字を URL エンコードし、次に URL を結合してデータを送信します。つまり、Web サイトの URL エンコードがブラウザに対して行われるという利点があります。 getメソッドで送信されるデータのエンコード方式を統一できます。 URL エンコードが完了すると、URL は ASCII 範囲の文字になり、iso-8859-1 エンコードを使用してバイナリに変換され、リクエスト ヘッダーとともに送信されます。ここでもう少し言いたいのは、get メソッドにはリクエスト エンティティが存在せず、データを含む URL がリクエスト ヘッダーにあるということです。URL エンコードが使用される理由は 私が個人的に考えている理由です。リクエストヘッダー用 中国語やその他の文字を含む特殊文字が iso で直接エンコードされた場合、最終的に 101010... の純粋なデータは iso-8859-1 エンコード方式を使用してバイナリにエンコードされ、インターネット経由で送信されます。 -8859-1 では情報が失われるため、最初に URL エンコードを行う必要があります。 2.サーバー側 (tomcat) はどのようにしてデータを取得し、デコードするのでしょうか。
最初のステップは、get メソッドの場合、リクエストの URL にパラメータ データが含まれている場合は、特殊なリクエスト ヘッダー文字を使用してデータを取得します。 URL エンコード後も %XY 状態のままです。まず、開発者が一般的にデータを取得するプロセスについて説明します。通常、リクエスト オブジェクトで取得するデータは request.getParameter("name") を使用して取得されますが、デコード処理中にプログラムで指定することはできません。初心者は、request.setCharacterEncoding("Character Set") を使用してデコード メソッドを指定できますが、実際には不可能です。このメソッドの説明については、サーブレットの公式 API の説明を参照してください。このリクエストの本文で使用される文字エンコーディングの名前。このメソッドは、getReader() を使用してリクエスト パラメータを読み取る前、または入力を読み取る前に呼び出す必要があります。では、データのデコードにはどのようなエンコード方式が使用されるのでしょうか? これは Tomcat の問題であり、中国語のパラメータを含む get リクエストがサーバー側で文字化けする理由を知ることができます。通常、データ URL のエンコードには UTF-8 または GBK が使用されますが、ここで iso-8859-1 URL デコーダーを使用することは明らかに不可能です。Java コード
1。 String( request.getParameter("name").getBytes("iso-8859-1"),"クライアントが指定した URL エンコード エンコード方法")
バイトコードに戻し、データを正しい方法でデコードします、オンライン この記事は通常、Tomcat
Xml コード
1 で構成されます。
これにより、Tomcat はデータを取得した後に指定された URL デコーダーを使用できるようになります。 URL デコーダーの紹介はこちらです
(1) 送信後の手順
1. クライアント (ブラウザー) の方法フォームは post メソッドを使用してデータをエンコードし、サーバーに送信します。
postメソッドで送信するデータもURLエンコードが必要ですが、どのようなエンコード方式を採用しているのでしょうか?
HTML ファイル内にフォームが配置されているセグメントがある場合、
一般に、このコードは Web ページを解釈するためにどの文字セットを使用するかをブラウザーに知らせるものであると考えられているため、Web サイトは文字化けを避けるためにこのコードを HTML コードのフロントエンドに配置します。また、別の機能もあります: フォーム の post メソッドによって送信されたデータの URL エンコード エンコード方法を指定します。ここから、getメソッドについてはブラウザによるデータのURLエンコードのエンコード方法がブラウザの設定で決まり(jsで一律に指定できる)、postメソッドについては開発者が指定できることがわかります。それを指定してください。 2.サーバー側 (tomcat) はどのようにしてデータを取得し、デコードするのでしょうか。
Tomcat のデフォルト設定を使用し、フィルターなどのエンコード設定を行わない場合も、iso-8859-1 を使用してデコードされますが、request.setCharacterEncoding("Character Set") が便利です。


上記の Tomcat の前提は、リクエストヘッダーにエンコード方式が指定されていないことであることがわかりました。このようなコーディングになります。 推奨記事が 2 つあります。アドレスは次のとおりです。
URL エンコードを簡単に説明します:
http://www.cnblogs.com/ yencain/articles/1321386.html; フォームが post メソッドを使用してデータを送信すると文字化けが発生する問題:
http://wanghuan8086.javaeye。 com/blog/173869
HTML ファイル内にフォームが配置されているセクションがある場合は、post を使用することが非常に重要です。

送信後を使用することを強くお勧めします。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート