2012-08-03 48 views
16

Tôi sử dụng cả hai lần này trong mã của mình và không thực sự biết sự khác biệt là gì, nếu một cookie được đặt không đúng như vậy trong yêu cầu và phản hồi ? và có yêu cầu đi tới mức cập nhật nhất hoặc phản hồi không?Sự khác biệt giữa Request.Cookies và Response.Cookies

EDIT:

ok, tôi nhận được sự khác biệt giữa một yêu cầu và một phản ứng, nhưng nếu tôi gõ

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

nó là hầu hết thời gian giống như

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

nhưng tôi tự hỏi sự khác biệt giữa việc sử dụng hai cái là gì.

+0

là sự khác biệt chỉ coi là một dấu chấm phẩy '; '? – BlackVegetable

+0

ok, giả sử có một dấu chấm phẩy ở đó, tôi sẽ đặt một, tôi có nghĩa là Đáp ứng Yêu cầu - tiêu đề của câu hỏi hiển thị –

+0

Ồ, kỳ lạ, tôi có thể thề hai dòng cả hai nói Yêu cầu một lúc. Lấy làm tiếc. – BlackVegetable

Trả lời

18

Như mọi người nói Request.Cookies được coi là cookie đến từ ứng dụng khách (trình duyệt) và Response.Cookies là các cookie sẽ được gửi lại cho khách hàng (trình duyệt).

Có một ma thuật đen cũng ghi nhận * mã mà bản sao giá trị từ Response cookie để Request.Cookies khi bạn thêm các tập tin cookie để Response. Kết quả là có vẻ như bạn có cùng một cookie trong cả hai RequestResponse. Lưu ý rằng các cookie sao chép này không đến từ khách hàng ... vì vậy hãy cẩn thận khi đưa ra quyết định sai.

Đây là liên kết để thảo luận về mã: http://forums.asp.net/t/1279490.aspx. Đặc biệt, các tập tin cookie được thêm vào trong các cách sau đây sẽ hiển thị trong Request.Cookies bộ sưu tập:

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

* Hành vi của các tập tin cookie bị sao chép từ Response.Cookies được diễn tả trong bài viết HttpResponse.Cookies:

Sau bạn thêm cookie bằng cách sử dụng bộ sưu tập HttpResponse.Cookies, cookie sẽ có ngay trong bộ sưu tập HttpRequest.Cookies, ngay cả khi phản hồi chưa được gửi cho khách hàng.

+4

Nghe có vẻ giống như một con bọ thay vì ma thuật đen. Tại sao việc sao chép này xảy ra? –

+0

@GabrielBurete - Tôi đã thêm cùng một liên kết như trong [câu hỏi ban đầu] của bạn (http://stackoverflow.com/questions/19557365/response-cookies-show-up-in-request-cookies/19557437#19557437). Nếu bạn quan tâm lý do tại sao hành vi cụ thể đã được thực hiện - tôi không biết, bạn có thể thử đặt câu hỏi riêng nhưng nhìn chung các câu hỏi khảo cổ học như vậy không được trả lời. –

+0

Tôi đã nhận được trả lời của bạn, cảm ơn bạn! –

2

Cookie yêu cầu là những gì được gửi từ máy khách đến máy chủ (do đó trình duyệt cung cấp). Cookie phản hồi là các cookie mà bạn muốn đặt trong trình duyệt. Kết nối tiếp theo từ trình duyệt chấp nhận cookie từ đối tượng phản hồi sẽ cung cấp cookie trong đối tượng yêu cầu.

1

Phụ thuộc vào ngữ cảnh nào.

Yêu cầu là dữ liệu được gửi đến máy chủ với mọi yêu cầu http. Phản hồi là phản hồi sau khi yêu cầu bởi máy chủ đến khách hàng.

4

Từ Response được sử dụng trong Asp.net để gửi dữ liệu từ máy chủ cho khách hàng và các Request được sử dụng để lấy dữ liệu từ máy khách (theo hình thức các tập tin cookie, chuỗi truy vấn) vv Ví dụ:

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 

và như bạn đề cập

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. 
Các vấn đề liên quan