[解決済み] ポストバックとは何ですか?
質問
私が見つけたpostBackの最良の説明は、以下のものです。 Wikiです。
ポストバックとは、フォームが存在するページと同じページへのHTTP POSTのことです。
この記事では、ASP では 2 番目のページが必要だったが、ASP.NET ではもう必要ないことを説明していますが、あまり詳細や背景は説明されていません。 私は、PostBacks に関する膨大な量の情報を探しています。例えば、「家をきれいにするにはどうしたらいいか」という素朴な疑問には、次のように答えることができます。 900ページの本 . 900ページ分も必要ないのですが、詳細をお願いします。ASP.NETのライフサイクルに関する素晴らしい小さなチュートリアルを見つけましたが、ポストバックについては(他の事柄も含めて)真剣に触れていません。
私は、.NET 以前から存在し、これらの種類のことを当然だと考えていない開発者たちを見ています。書籍とハイパーリンクは、合理的な回答または回答への追加です。
どのように解決するのですか?
これまでのところ、私は正解が何度も言及されているのを見てきましたが、ほとんどの人が、私が主観的に考えているようなマークには及ばないようです。
基本的なことから始めましょう。
HTTP リクエストは HTTP 動詞 しかし、人々が最もよく使うのは GET と POST の 2 つです。まあ、この二つはプログラマが最も頻繁に使うものです。それ以外のものも、サーバーに実装されていれば、何らかの目的を持つものばかりです。サーバーに情報を送るときは、URL(ページを要求する)を使うか、リクエストの本文(POST、PUT、DELETEなど)の中で行うことができます。
しかし、W3C によれば、状態を変更するために GET を使用してはならないことになっていますが、私たちはしばしばこれを行います。これは、実際の使用方法として皆が認めているハックのようなものであり、ハックではありません。それがハックになるか、実際の実装の詳細になるかは、あなたにお任せします。
つまり、POSTのボディをフォーム要素とともに送信するとき(今のところ他は省略、ここから理解できます)、あなたは特定の要素を送り返すことになります。これらの要素をどのように定義するかは、あなたやあなたが働いている環境次第です。あなたは は は、本文にJSON要素、XML、またはフォームフィールドを使用してサーバーに投稿することができます。一般に、我々は ボディ の中にあるFORM要素から投稿します。
さて、誰もが「ポストバックはページに対する後続のリクエストだ」と言うでしょう。ポストバックとは、POSTでデータをサーバに送り返すことです。GETリクエストとPOSTリクエストの違いは、データがボディに含まれているかどうかです(そして、使用される動詞もですが、通常、クライアントはその対処方法を知っています)。あなたは は 実際、ASP.NET にはそれを行うためのツールがライブラリに用意されています。デスクトップ クライアントで、サーバーから Web ページをまったく表示せずにサーバー (Twitter を考えてください) にデータを POST することもできます (Twitterはここで例に使うには最適な概念ではないかもしれませんが、Web ページを表示しないクライアントを使用できることを説明したいので、リクエストは不要なのです)。
つまり、quot;postback" で本当に読むべきことは、quot;データを処理のためにサーバーに POST しています" ということなのです。最初に GET でページを取得し、ユーザーに
<form>
要素があり、その中に
<input>
フィールドがあり、最後にデータを送り返します。しかし、この順番である必要はないことがおわかりいただけると思います。
では、ここでもうひとつ考えてみましょう。
もしあなたがユーザーに、たくさんの
<input>
があり
<form>
がない代わりに、javascriptで配線されたボタンがあり、これらの
<input>
を
&value-n=
を使って、GET として送るのですか?同じことをしますが、リクエストにのみ GET を使うという概念に反します。
(おそらく)
その後の議論では、GET には副作用がない (値を更新しない) ようにすることが奨励されました。
例えば、google検索のリンクを誰かに送ることができるのは、そのためです。そのため、データを取得するために常にサーバーにPOST BACKする必要はありません。
お役に立てれば幸いです。 ありがとうございます。
関連
-
30分でわかるコング経由の.NETゲートウェイ
-
ASP.NET Core ディペンデンシーインジェクションの詳細
-
再起動を伴わないNET5の設定変更は自動的に反映される
-
Net CoreによるAutoFacの利用
-
名前 'xxx' が現在のコンテキストに存在しない エラー解決方法の1つ
-
ajaxでポップアップアラートボックス
-
[解決済み] C#では、public、private、protected、アクセス修飾子がないことの違いは何ですか?
-
[解決済み】ASP.NETボタンのポストバックによるjQuery UIダイアログ
-
[解決済み] Server.UrlEncode vs. HttpUtility.UrlEncode
-
[解決済み] コンテンツ」項目が重複して含まれていました。.NET SDKは、デフォルトでプロジェクトディレクトリの'Content'アイテムを含めます。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
pythonでpillowをインストールする3つの方法
-
NET6新機能 - 暗黙の名前空間参照
-
.NET複数データベース一括データ挿入、更新(SqlServer、MySql、PgSql、Oracleをサポートします。)
-
Net Core HttpClient処理 レスポンス圧縮の詳細
-
ajaxでポップアップアラートボックス
-
[解決済み] web.configでmaxJsonLengthの長さを無制限に設定することは可能ですか?
-
[解決済み】ASP.NET Bundles ミニフィケーションを無効にする方法
-
[解決済み] ASP.NETの新しいセキュリティ脆弱性の深刻度と回避方法について教えてください。
-
[解決済み] ポストバックとは何ですか?
-
[解決済み] ASP.NET。HTTP エラー 500.19 - 内部サーバー エラー 0x8007000d