Session và Cookie là hai khái niệm quan trọng trong lập trình web. Khi mới bắt đầu làm web, nhiều bạn thường gặp khó khăn khi phân biệt giữa hai khái niệm này. Bài viết này sẽ giúp bạn hiểu rõ hơn về Session và Cookie và khi nào nên sử dụng chúng.
Session là gì?
Session là một khái niệm phổ biến trong lập trình web, đặc biệt được sử dụng trong các chức năng như đăng nhập, đăng xuất. Session là một phiên làm việc và được liên kết với cơ sở dữ liệu. Khi bạn đăng nhập vào một trang web, server sẽ tạo ra một phiên làm việc mới và lưu trữ thông tin của bạn trong một file trên server.
Mỗi session được định danh bằng một SessionID duy nhất. Bạn có thể lưu trữ những thông tin tạm thời trong session nhưng thông thường, chúng ta chỉ nên lưu trữ những thông tin quan trọng và tạm thời.
Cách sử dụng Session
Một session bắt đầu khi client gửi request đến server và tồn tại xuyên suốt từ trang này đến trang khác trong ứng dụng web. Session kết thúc khi hết thời gian timeout hoặc khi bạn đóng ứng dụng.
Ví dụ, khi bạn đăng nhập vào một trang web, thông tin của bạn sẽ được xác thực và server sẽ tạo ra một file chứa dữ liệu của người dùng.
Với mỗi session, bạn sẽ được cấp phát một SessionID duy nhất. Bạn có thể quyết định lưu trữ những thông tin nào trong Session. Tuy nhiên, thông thường chúng ta chỉ nên lưu trữ những thông tin tạm thời trong session.
Cookie là gì?
Giống như session, cookie cũng được sử dụng để lưu những thông tin tạm thời. Tuy nhiên, cookie được truyền từ server tới browser và được lưu trữ trên máy tính của bạn khi bạn truy cập vào ứng dụng.
Cách sử dụng Cookie
Cookie thường được tạo ra khi người dùng truy cập một website. Cookie sẽ ghi nhớ những thông tin như tên đăng nhập, mật khẩu, và các tùy chọn khác do người dùng lựa chọn. Những thông tin này được lưu trữ trong máy tính để nhận biết người dùng khi truy cập vào trang web.
Khi người dùng truy cập một trang web sử dụng cookie, server sẽ tự động gửi cookie đến máy tính của người dùng. Khi truy cập các trang web sử dụng cookie đã lưu, những cookie này sẽ tự động gửi thông tin của người dùng về cho chủ của nó. Tuy nhiên, chỉ có website chứa cookie mới có thể xem được thông tin này.
Mỗi cookie có một thời gian timeout cụ thể mà lập trình viên xác định trước. Những thông tin được lưu vào cookie là những thông tin tạm thời và chỉ tồn tại trong một khoảng thời gian nhất định.
Cookie là một thành phần không thể thiếu trong những website có khối lượng dữ liệu lớn, số lượng người dùng đông, và có chức năng đăng ký.
So sánh giữa Cookie và Session
- Cookie được lưu trữ trên trình duyệt của người dùng, trong khi session không được lưu trữ trên trình duyệt.
- Dữ liệu cookie có thể được sửa đổi hoặc đánh cắp khi chúng được lưu trữ trên trình duyệt. Trong khi đó, dữ liệu session không dễ dàng sửa đổi vì nó được lưu trữ ở phía máy chủ.
- Dữ liệu cookie có sẵn trong trình duyệt cho đến khi expired. Khi đóng trình duyệt, session cũng kết thúc.
Đó là những điểm khác nhau giữa Cookie và Session. Hi vọng bài viết này đã giúp bạn hiểu rõ hơn về hai khái niệm này.
Có thể bạn muốn xem thêm:
- Đánh cắp Cookie bằng cách lợi dụng lỗi bảo mật XSS
- Sự khác nhau giữa Cookie, localStorage và sessionStorage trong Javascript
- Authentication nâng cao trong SPA (React/Vue) dùng JWT kết hợp Cookie
Hãy truy cập Dnulib để tìm hiểu thêm về công nghệ thông tin và các công việc có mức lương cao!
Được chỉnh sửa bởi: Dnulib