Scroll to top
Session là gì? Vai trò của session trong website

Session là gì? Vai trò của session trong website

ByYuto 14/10/2024 06:36
9min read

Cùng tìm hiểu về khái niệm session trong lập trình web, cách sử dụng và quản lý session trong các ngôn ngữ lập trình. Tìm hiểu các tình huống sử dụng session trong việc xác thực và bảo mật người dùng cũng như các lưu ý và cách giải quyết khi sử dụng session.

Đối với các nhà lập trình web thì chắc hẳn SessionCookie là hai khái niệm quen thuộc. Trong bài viết này, chúng ta sẽ tìm hiểu về khái niệm session, cách sử dụng và quản lý session, và vai trò của session trong một website.

Session là gì?

Session là một khái niệm quan trọng trong lập trình web, nó cho phép lưu trữ thông tin của một người dùng trên máy chủ web cho mỗi phiên làm việc của họ. Session còn được gọi là phiên làm việc.

Giá trị session sẽ tự động bị xóa khi đóng trình duyệt. Do đó nếu bạn muốn lưu trữ lâu dài thì nên sử dụng Database.

Ví dụ khi một người dùng đăng nhập vào một trang web, máy chủ sẽ tạo ra một phiên session duy nhất cho người dùng đó và gắn một session ID với trình duyệt của họ. Tất cả các yêu cầu tiếp theo từ trình duyệt đó sẽ gửi theo session ID đó, cho phép máy chủ liên kết các yêu cầu với phiên session tương ứng.

session-la-gi

Vai trò của session trong một website

Session có rất nhiều vai trò trong một website, chẳng hạn như:

  • Xác thực người dùng: Session có thể được sử dụng để xác thực người dùng sau khi đăng nhập, cho phép website biết được người dùng đó là ai và có quyền truy cập những trang nào.
  • Lưu trữ thông tin người dùng: Session có thể được sử dụng để lưu trữ thông tin người dùng, chẳng hạn như thông tin cá nhân, giỏ hàng mua hàng, lịch sử truy cập, v.v.
  • Lưu trữ trạng thái: Session có thể được sử dụng để lưu trữ trạng thái của người dùng trên website, chẳng hạn như các lựa chọn của họ trong một form, giúp người dùng không phải nhập lại thông tin khi có lỗi hoặc khi muốn tiếp tục điền thông tin sau một thời gian dài, từ đó giúp người dùng có trải nghiệm tốt hơn và tiết kiệm thời gian.
  • Bảo mật: Session có thể được sử dụng để bảo mật website bằng cách chỉ cho phép người dùng truy cập vào những trang mà họ có quyền truy cập.
  • Quản lý truy cập: Session có thể được sử dụng để quản lý truy cập vào website, chẳng hạt như giới hạn số lần truy cập hoặc thời gian truy cập. Session cũng có thể được sử dụng để lưu trữ lịch sử truy cập của người dùng, giúp cho website có thể hiểu được hành vi của người dùng và cải thiện trải nghiệm của họ.
  • Tối ưu hóa tốc độ: Session có thể được sử dụng để tối ưu hóa tốc độ truy cập của website bằng cách lưu trữ thông tin đã tải trên máy chủ, giúp cho website không cần phải tải lại các thông tin mỗi lần người dùng truy cập.

Cách hoạt động của session

Đối với một máy tính cá nhân đơn lẻ thì chỉ có một phiên người dùng, do đó việc tạo kết nối giữa người dùng và phiên dữ liệu của họ rất đơn giản.

Tuy nhiên đối với một ứng dụng web, một máy chủ (server) có nhiều máy khách (client). Lúc này session_id sẽ được phát sinh. Một session được bắt đầu từ khi client gửi yêu cầu đến server, session này tồn tại từ trang này đến trang khác trong website, và chỉ kết thúc khi hết thời gian (timeout), hoặc khi người dùng đóng ứng dụng. Session được lưu trữ trên server.

Ví dụ ở một website mua sắm online, khi người dùng thực hiện hành động đăng nhập, máy chủ sẽ lấy thông tin đăng nhập từ người dùng và kiểm tra xem có hợp lệ không, nếu hợp lệ thì máy chủ sẽ tạo ra một session mới với thông tin đăng nhập của người dùng được lưu trữ trong đó. Nếu người dùng muốn thêm sản phẩm vào giỏ hàng, máy chủ sẽ kiểm tra session ID của người dùng đó để tìm thông tin giỏ hàng tương ứng và thêm sản phẩm vào đó. Việc giữ sản phẩm trong giỏ hàng sẽ giúp cải thiện trải nghiệm người dùng, và tăng năng suất bán hàng của website.

cách quản lý session

Các cách quản lý session

Một số cách để quản lý session trong lập trình web:

  • Sử dụng biến toàn cục: Đây là cách sử dụng biến toàn cục để lưu trữ thông tin session. Tuy nhiên, cách này có nhược điểm là không an toàn và không dễ dàng quản lý khi có nhiều người truy cập website cùng lúc.
  • Sử dụng cơ sở dữ liệu: Đây là cách sử dụng cơ sở dữ liệu để lưu trữ thông tin session. Cách này có ưu điểm là an toàn và dễ dàng quản lý khi có nhiều người truy cập website cùng lúc.
  • Sử dụng cơ sở dữ liệu NoSQL: Thay vì sử dụng những cơ sở dữ liệu kiểu truyền thống như MySQL, PostgreSQL, thì cách này sử dụng Redis hoặc Memcached – một cơ sở dữ liệu dạng key-value có điểm mạnh là tốc độ đọc và ghi rất nhanh.

Tổng kết

Trong bài viết này, chúng ta đã tìm hiểu về khái niệm session trong lập trình web, các khái niệm cơ bản và cách sử dụng session để lưu trữ thông tin người dùng trong quá trình truy cập website. Chúng ta cũng đã tìm hiểu về các phương pháp quản lý session, như sử dụng cơ sở dữ liệu để lưu trữ thông tin session. Tóm lại, session là một phần quan trọng trong lập trình web và nó có thể giúp cho việc quản lý thông tin người dùng trở nên dễ dàng hơn.

Đánh giá bài viết: 4.9/5 (60 đánh giá)
Bạn chưa đánh giá

Bình luận

Author
hoclaptrinh.io author
Tác giả:Yuto Yasunaga

Mình là một full stack developer, tốt nghiệp và làm việc tại Nhật Bản. Trang web này là nơi mình tổng hợp, đúc kết và lưu trữ lại những kiến thức trong quá trình học và làm việc liên quan đến IT.
Hy vọng những bài viết ở website này sẽ có ích cho bạn.