Thứ Hai, 22 tháng 12, 2008

Cookie and Session

Cookie là gì ?
- Cookie là một đoạn dữ liệu được truyền đến Browser từ Server, đoạn dữ liệu sẽ được browser lưu trữ (Trong memory hoặc trên đĩa) và sẽ gởi ngược lên lại server mỗi khi browser tải một trang web từ server. Những thông tin được lưu trữ trong cookie hoàn toàn phụ thuộc vào website trên server. Mỗi website có thể lưu trữ những thông tin khác nhau trong cookie, ví dụ lần cuối bạn ghé thăm website, đánh dấu bạn đã login hay chưa, ...
- 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 một Server) sẽ có 2 cookie khác nhau gởi tới browser. Ngoài ra, mỗi browser quản lý và lưu trữ cookie theo cách riêng của mình, cho nên 2 browser cùng truy cập vào một website sẽ nhận được 2 cookie khác nhau.
session là gì ?
- Session là khoản thời gian người dùng giao tiếp với một ứng dụng. Session bắt đầu khi người dùng truy cập vào ứng dụng lần đầu tiên, và kết thúc khi người dùng thoát khỏi ứng dụng.
- Mỗi session sẽ có một định danh (ID), session khác nhau sẽ có ID khác nhau. Trong ngữ cảnh ứng dụng web, website sẽ quyết định khi nào session bắt đầu và kết thúc.
- Trong 1 session, website có thể lưu trữ một số thông tin như đánh dấu bạn đã login hay chưa, những bài viết nào bạn đã đọc qua, ...
S0 Sánh Cookie Và Session :
- Cookie và Session đều có chung mục đích là lưu giữ data để truyền từ 1 trang web sang 1 trang web khác (Trên cùng website). Nhưng phương thức lưu trữ và quản lý data có phần khác nhau.
- Cookie sẽ được lưu trữ tại browser, do browser quản lý và browser sẽ tự động truyền cookie ngược lên server mỗi khi truy cập vào một trang web trên server.
- Dữ liệu lưu trữ trong session sẽ được ứng dụng quản lý, trong ngữ cảnh web, ứng dụng ở đây là website và webserver. Browser chỉ truyền ID của session lên server mỗi khi truy cập vào website trên server.
- Mỗi session gắn với một định danh (ID). ID sẽ được tạo ra trên server khi session bắt đầu và được truyền cho browser. Sau đó browser sẽ truyền lại ID này lên server mỗi khi truy cập vào website. Như vậy ta có thể thấy rằng sẽ rất tiện nếu như session ID được lưu trữ trong cookie và được browser tự động truyền lên server mỗi khi truy cập vào website.
Sử Dụng Cookie Hay Session ?
- Sử dụng cái nào là tùy thuộc lựa chọn của Lập Trình Viên, tuy nhiên session thường được ưa chuộng hơn Cookie vì một số lý do sau :
  • Trong một số trường hợp cookie không sử dụng được, có thể browser đã được thiết lập để không chấp nhận cookie. Lúc đó session vẫn sử dụng được bằng cách truyền session ID giữa các trang web qua URL.
  • Lượng data truyền tải giữa browser và server : chỉ mỗi session ID được truyền giữa browser và server, data thực sự được website lưu trữ trên server.
  • Bảo mật : càng ít thông tin được truyền tải qua lại giữa browser và client càng tốt, và càng ít thông tin được lưu trữ tại client càng tốt.

Không có nhận xét nào: