So Sánh Cookie và Session trong ASP.Net

1.Cookie và Session là gì?!

Điểm chung giữa Cookie và Session là việc lưu trữ và quản lý một số thông tin liên quan đến người dùng website, những thông tin này cần dùng trên nhiều trang web của cùng hệ thống website. Thông tin được lưu trữ với khoảng thời gian quy định trước, và có thể tự hủy khi hết thời gian cho phép. Cookie và Session thuận tiện cho việc gửi thông tin qua lại giữa các trang web mà không cần dùng qua phương thức POST/GET… giảm thiểu việc phát sinh thêm biến. Ứng dụng thường thấy của Cookie và Session là lưu trữ thông tin đăng nhập của người dùng, xác định thời điểm đăng nhập, thoát khỏi website… Kết hợp với thao tác Redirect để có thể quản lý, chặn truy cập từ người dùng khi chưa đăng nhâp…

Một ví dụ làm việc giữa Session vs Cookie

2. Điểm riêng của Cookie

Cookie được lưu trữ trên trình duyệt, khi người dùng sử dụng trình duyệt truy cập vào một website nào đó thì server sẽ gửi cookie về trình duyệt và lưu trữ trực tiếp trên máy người dùng (client). Cookie sẽ khác nhau cho mỗi loại trình duyệt, IP người dùng cũng như server của website. Cookie được tạo ra bởi website và gởi tới browser, do vậy 2 website khác nhau (cho dù cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới trình duyệt . Mỗi trình duyệt sẽ có cách quản lý và lưu trữ cookie theo cách riêng của mình, cho nên 2 trình duyệt cùng truy cập vào 1 website sẽ nhận được 2 cookie khác nhau. Mỗi lần có request lên website, trình duyệt sẽ gửi cookie lên server, server sẽ có cơ chế “đọc” cookie và xử lý cho tác vụ nào đó. Mỗi cookie được website gửi đến trình duyệt thường bao gồm 3 thành phần chính sau:

  • Địa chỉ URL của website mà trình duyệt nhận cookie
  • Thời gian tồn tại của Cookie
  • Giá trị lưu trữ.

3. Điểm riêng của Session

Session dùng để lưu phiên làm việc của người dùng trên trang website. Kkhác với Cookie, Session được lưu trữ trên webServer. Session được lưu với một chuỗi ký tự dài gọi là ID, Sessiong kết thúc khi bị xóa hoặc hết phiên làm việc (đóng trình duyệt – Cookie lưu trên file ở Client nên khi đóng trình duyệt sẽ không mất Cookie).

4. Cookie trong ASP.NET

Trong ASP.NET các phương thức, thuộc tính liên quan đến việc xử lý Cookie được lưu trữ trong class HttpCookie. Các thuộc tính thường dùng trong Cookie:

  • Name: Tên Cookie.
  • Domain: Tên miền của Cookie lưu trữ.
  • Expires: Xác định thời gian hiệu lực của Cookie.
  • Value: Giá trị của Cookie.
  • HasKeys: Cho biết Cookie có tập giá trị con hay không.
  • Values: Tập các giá trị của Cookie.

5. Phương thức thao tác lên Cookie

  • Ghi Cookie: Respone.Cookies[cookie][(key)|.attribute]=value; Trong đó: cookie là tên biến cookie, key là tham số mở rộng cho Cookie, attribute là các thuộc tính của biến Cookie.

Khái niệm Cookie và Session trong ASP.Net | ASP.Net căn bản

  • Đọc Cookie: value = Request.Cookies[cookie][(key)|.attribute];
  • Thao tác trên Cookie có nhiều Subkey

Khái niệm Cookie và Session trong ASP.Net | ASP.Net căn bản

  • Xóa Cookie: Việc xóa Cookie thực chất là thao tác chỉnh thời gian hiệu lực về trước thời điểm hiện tại so với giờ hệ thống.

Khái niệm Cookie và Session trong ASP.Net | ASP.Net căn bản
6. Session trong ASP.NET

Trong ASP.NET cũng như các công nghệ lập trình web khác, Session được tạo ra khi Client bắt đầu có Requset gửi tới Server và sẽ kết thúc khi Client có thao tác hủy Session hoặc sau một thời gian (định trước) không có bất kỳ thao tác nào lên Server. Khi Session được tạo đồng thời phương thức Session_OnStart(); sẽ được thực thi và tương tự khi kết thúc Session phương thức Session_OnEnd() sẽ được thực thi.

7. Một số phương thức của Session:

  • Session.Timeout = minutes; Đặtthời gian của phiên làmviệc
  • Session.SessionID ID của phiên làmviệc
  • Session.Abandon() Hủyphiênlàmviệc (hủycả biếndữ liệu)

Cũng có thể dùng Session để lưu các biến giá trị như Cookie

  • Session[“nameVar”] = value.

Theo MicrosoftTech.Net

0 0 votes
Article Rating
Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
ikaria lean belly juice

Your posts always provide me with a new perspective and encourage me to look at things differently Thank you for broadening my horizons

1
0
Would love your thoughts, please comment.x
()
x