我在我的代码中多次使用这两个并且不知道区别是什么,如果设置了cookie,它在请求和响应中是不是应该完全相同?请求是最新的还是回复?
编辑:
好的,我得到了请求和响应之间的区别,但是如果我输入
string a = HttpContext.Current.Request.Cookie["a"].Value;
大部分时间与
相同string a = HttpContext.Current.Response.Cookie["a"].Value;
但我想知道使用这两者之间有什么区别。
答案 0 :(得分:28)
正如大家所说,Request.Cookies
应该是来自客户端(浏览器)的cookie,Response.Cookies
是将发送回客户端(浏览器)的cookie。
有 black magic 记录良好的*代码,当您向Response
添加Cookie时,会将Request.Cookies
Cookie中的值复制到Response
。因此,您似乎在Request
和Response
中都拥有相同的Cookie。请注意,这些复制的cookie并非来自客户端......因此请注意做出错误的决定。
以下是有关代码的讨论的链接:http://forums.asp.net/t/1279490.aspx。特别是,以下列方式添加的Cookie将显示在Request.Cookies
集合中:
Response.Cookies.Add(HttpCookie("MyCookie", "MyValue"))
*从Response.Cookies
复制Cookie的行为记录在HttpResponse.Cookies
文章中:
使用
HttpResponse.Cookies
集合添加Cookie后,即使尚未将响应发送给客户端,Cookie也会立即显示在HttpRequest.Cookies
集合中。
答案 1 :(得分:4)
在Asp.net中使用单词Response将数据从服务器发送到客户端,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.
答案 2 :(得分:2)
请求cookie是从客户端发送到服务器的内容(因此浏览器提供的内容)。响应cookie是您要在浏览器中放置的cookie。接收来自响应对象的cookie的浏览器的下一个连接将在请求对象中提供cookie。
答案 3 :(得分:1)
取决于具体情况。
请求是每个http请求发送到服务器的数据。响应是服务器 客户端之后的响应。