Search

Session là gì

Session là gì

Hôm nay mình sẽ giới thiệu với các bạn về Session là gì và cách Session hoạt động trong lập trình web.
Đây là một khái niệm rất cơ bản nhưng cực kỳ quan trọng, đặc biệt khi bạn bắt đầu xây dựng website có chức năng đăng nhập, phân quyền người dùng hoặc lưu trạng thái tạm thời.

Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu:

  • Session là gì và vì sao website cần Session
  • Cơ chế hoạt động của Session phía sau trình duyệt và server
  • Session được lưu trữ ở đâu và dùng trong những trường hợp nào
  • Ví dụ Session thực tế để bạn dễ hình dung

Session là gì?

Session là cơ chế giúp server lưu trữ và ghi nhớ trạng thái của người dùng trong suốt quá trình họ truy cập website.

Do giao thức HTTP vốn là stateless (không ghi nhớ trạng thái), nên mỗi request gửi lên server đều độc lập với nhau. Session ra đời để giải quyết vấn đề này, giúp server biết:

  • Bạn đã đăng nhập hay chưa
  • Bạn là người dùng nào
  • Bạn đang ở trạng thái nào trên website

👉 Nói đơn giản: Session giúp website “nhớ” bạn là ai.

Vì sao Session quan trọng?

Nếu không có Session:

  • Bạn sẽ phải đăng nhập lại mỗi khi chuyển trang
  • Giỏ hàng sẽ bị reset liên tục
  • Website không thể phân quyền người dùng

Session là nền tảng cho:

  • Hệ thống đăng nhập
  • Giỏ hàng thương mại điện tử
  • Phân quyền admin / user
  • Lưu trạng thái tạm thời (flash message, form nhiều bước)

Cơ chế hoạt động của Session

Cơ chế hoạt động của Session thường gồm các bước sau:

  1. Người dùng gửi request đầu tiên lên server
  2. Server tạo một Session ID (ví dụ: abc123xyz)
  3. Session ID được gửi về trình duyệt thông qua cookie
  4. Trình duyệt gửi Session ID này ở các request tiếp theo
  5. Server dùng Session ID để lấy đúng dữ liệu Session tương ứng

📌 Lưu ý quan trọng:

  • Cookie chỉ lưu Session ID
  • Dữ liệu Session thật nằm ở server, không nằm ở trình duyệt

Ví dụ Session trong thực tế (đăng nhập)

📌 Tình huống

Bạn đăng nhập vào website w3dev.vn

🔍 Điều gì xảy ra?

  • Server xác thực tài khoản thành công
  • Server tạo Session:
session_id = xyz789 user_id = 15 username = admin 
  • Trình duyệt lưu cookie:
PHPSESSID=xyz789 

Từ đó, mỗi lần bạn chuyển trang:

  • Trình duyệt gửi Session ID
  • Server biết bạn là user đã đăng nhập

Ví dụ Session trong PHP (cơ bản)

Khởi tạo và lưu Session

<?php 
session_start(); 
$_SESSION['user_id'] = 15; 
$_SESSION['username'] = 'admin'; 

Lấy dữ liệu Session

<?php 
session_start(); 
if (isset($_SESSION['user_id'])) {    
    echo "Xin chào " . $_SESSION['username']; 
} 

Xoá Session (logout)

<?php 
session_start(); 
session_destroy(); 

Session khác Cookie như thế nào?

Tiêu chíSessionCookie
Nơi lưuServerTrình duyệt
Bảo mậtCao hơnThấp hơn
Dung lượngLớnNhỏ
Người dùng chỉnh sửaKhông
Mục đíchTrạng thái người dùngLưu thông tin đơn giản

👉 Trên thực tế, Session và Cookie thường đi cùng nhau, không thay thế nhau.

Session được lưu trữ ở đâu?

Tuỳ vào cấu hình hệ thống, Session có thể được lưu tại:

  • File (đơn giản, dễ triển khai)
  • Database
  • In-memory cache (APCu, Memcached)
  • Redis (phổ biến với hệ thống lớn)

👉 Với website có lượng truy cập cao, Session + Redis là lựa chọn rất tối ưu.

Một số lưu ý khi sử dụng Session

  • Không lưu dữ liệu quá lớn vào Session
  • Regenerate Session ID sau khi đăng nhập
  • Thiết lập thời gian hết hạn hợp lý
  • Không lạm dụng Session cho API stateless
  • Luôn sử dụng HTTPS

Kết luận

Session là một thành phần cốt lõi trong lập trình web, giúp website:

  • Ghi nhớ trạng thái người dùng
  • Xây dựng hệ thống đăng nhập an toàn
  • Tạo trải nghiệm liền mạch cho người dùng

👉 Nếu bạn đang học backend hoặc xây dựng website thực tế, hiểu rõ Session là điều bắt buộc.

Tags:
Culi Dev

Culi Dev

Enjoy coding, enjoy life!

Leave a comment

Your email address will not be published. Required fields are marked *

Your experience on this site will be improved by allowing cookies Cookie Policy