Session và Cookie có lẽ là 2 khái niệm thường được nhắc đến trong lập trình web. Khi mới bước chân vào mảng này, có rất nhiều bạn vẫn hay nhầm lẫn giữa 2 khái niệm trên. Trong bài viết này, mình sẽ giúp các bạn phân biệt được sự khác nhau giữa Session và Cookie nhé.

Tổng quan

Session và Cookie đều được sử dụng để lưu trữ thông tin. Nhưng Cookie chỉ được lưu trữ trên máy phía Client side, trong khi đó, Session lại được lưu trữ trên cả Client side và Server side.

Session

Session là một biến toàn cục được lưu trữ trên máy chủ. Mỗi Session được gán một id là duy nhất được sử dụng để truy xuất các giá trị được lưu trữ. Bất cứ khi nào một Session được tạo, một Cookie chứa id Session duy nhất sẽ được lưu trữ trên máy tính của người dùng và được trả lại với mọi yêu cầu đến máy chủ. Nếu trình duyệt máy khách không hỗ trợ Cookie, id Session duy nhất được hiển thị trong URL. Session có khả năng lưu trữ dữ liệu tương đối lớn so với Cookie.

Các giá trị Session sẽ tự động bị xóa khi đóng trình duyệt. Nếu bạn muốn lưu trữ các giá trị vĩnh viễn, thì bạn nên lưu trữ chúng trong cơ sở dữ liệu.

Cookie

Cookie là các tệp văn bản được lưu trữ trên Client side và chúng được giữ cho mục đích theo dõi sử dụng. Tập lệnh máy chủ gửi một bộ Cookie đến trình duyệt. Ví dụ: tên, tuổi hoặc số nhận dạng,…. Trình duyệt lưu thông tin này trên máy khách để sử dụng trong tương lai.

Khi trình duyệt lần sau gửi bất kỳ yêu cầu nào đến máy chủ web thì nó sẽ gửi thông tin Cookie đó đến máy chủ và máy chủ sử dụng thông tin đó để nhận dạng người dùng.

Sự khác nhau giữa Session và Cookie

 

Session Cookie
Session là các tệp phía máy chủ chứa thông tin người dùng Cookie là các tệp phía máy khách chứa thông tin người dùng
Một Session kết thúc khi người dùng đóng trình duyệt Cookie kết thúc tùy thuộc vào thời gian bạn đặt cho nó
Trong PHP, trước khi sử dụng $ _SESSION, bạn phải viết Session_start (); Tương tự như vậy đối với các ngôn ngữ khác Không cần phải khởi động Cookie vì nó được lưu trữ trong máy của bạn
Có thể lưu trữ bao nhiêu dữ liệu tùy thích. Giới hạn duy nhất bạn có thể đạt được là bộ nhớ tối đa mà tập lệnh có thể tiêu thụ cùng một lúc, là 128 MB theo mặc định Kích thước Cookie tối đa là 4KB
Một Session phụ thuộc vào Cookie Một Cookie không phụ thuộc vào Session
Session_destroy (); được sử dụng để hủy tất cả dữ liệu đã đăng ký Không có hàm tên unsetCookie ()

Author: Mai Công Sơn

Đăng ký nhận bộ tài liệu học Java trên 2 trang giấy tại đây

Xem thêm: Java Coding Bootcamp là gì? Tổng quan về Java Coding Bootcamp


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.