1. ホーム
  2. asp.net

[解決済み] ポストバックとは何ですか?

2023-06-02 15:02:39

質問

私が見つけた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する必要はありません。

お役に立てれば幸いです。 ありがとうございます。