41

私はコードでこれらの両方を何度も使用していますが、違いが何であるかはよくわかりません.Cookieが設定されている場合、リクエストとレスポンスでまったく同じであるべきではありませんか? リクエストは最新のものですか、それともレスポンスですか?

編集:

わかりました、リクエストとレスポンスの違いはわかりますが、入力すると

string a = HttpContext.Current.Request.Cookie["a"].Value;

それはほとんどの場合と同じです

string a = HttpContext.Current.Response.Cookie["a"].Value;

しかし、私は2つの使用の違いは何だろうと思っています。

4

4 に答える 4

44

誰もが言うようRequest.Cookiesに、クライアント (ブラウザー) からの Cookie であり、クライアント (ブラウザー)Response.Cookiesに送り返される Cookie です。

Cookieを追加すると、ResponseCookie からに値をコピーする、十分に文書化された* コードがあります。その結果、 と の両方に同じ Cookie があるように見えます。これらのコピーされた Cookie はクライアントからのものではないことに注意してください。そのため、間違った決定を下さないように注意してください。Request.CookiesResponseRequestResponse

コードに関するディスカッションへのリンクは次のとおりです: http://forums.asp.net/t/1279490.aspx。特に、次の方法で追加された Cookie はRequest.Cookiesコレクションに表示されます。

Response.Cookies.Add(HttpCookie("MyCookie", "MyValue"))

* Cookie のコピー元の動作については、次の記事Response.Cookiesに記載されています。HttpResponse.Cookies

コレクションを使用して Cookie を追加すると、応答がクライアントに送信されていない場合でもHttpResponse.Cookies、Cookie はコレクションですぐに使用できるようになります。HttpRequest.Cookies

于 2012-08-03T17:22:00.410 に答える
4

リクエスト Cookie は、クライアントからサーバーに送信されるものです (したがって、ブラウザが提供するもの)。応答 Cookie は、ブラウザーに配置する Cookie です。応答オブジェクトからの Cookie を受け入れたブラウザーからの次の接続では、要求オブジェクトで Cookie が提供されます。

于 2012-08-03T17:13:11.650 に答える
4

Responseという単語は Asp.net でサーバーからクライアントにデータを送信するために使用され、Requestはクライアントからデータを取得するために使用されます (Cookie、クエリ文字列の形式で)。例:

Response.Write("will write the content on the form which will return to the client");
// Response.Cookies will send the cookie to the client browser.
 Response.Cookies.Add(HttpCookie("MyCookie", "MyValue"))
//and Request.Cookies is used to get the cookie value which is already present in the clinet browswer   

そしてあなたが言ったように

string a = HttpContext.Current.Request.Cookie["a"].Value;
// I think this will check the cookie which is present in the client browser [ If client has sent the cookie to the server ]

string a = HttpContext.Current.Response.Cookie["a"].Value;
// and this will see the only Response object. If the cookie present in the response object then it will return you otherwise not.
于 2012-08-03T18:38:23.550 に答える
2

どんな文脈かによる。

リクエストは、すべての http リクエストでサーバーに送信されるデータです。レスポンスは、サーバーからクライアントへのリクエスト後レスポンスです

于 2012-08-03T17:13:31.227 に答える