fbpx

Lập Trình Web PHẢI Phân Biệt Được Cookie Và Session

Cookie và Session

Làm thế nào một trang web có thể ghi nhớ bạn đã đăng nhập trên một thiết bị nào đó.

Để làm được như vậy cần dựa trên cookie và session.

Đây là 2 khái niệm bắt buộc bạn phải nắm vững nếu muốn trở thành một lập trình viên web.

Vậy cơ chế hoạt động của cookie và session như thế nào, chúng ta hãy cùng tìm hiểu chi tiết trong bài viết này.

1. Cookie là gì?

Cookie là dữ liệu được lưu trữ tại trình duyệt.

Mỗi khi trình duyệt gửi 1 request đến máy chủ, trình duyệt sẽ tự động đính kèm cookie vào request.

Để giúp bạn hiểu rõ hơn, mình có ví dụ sau.

1.1 Định danh thiết bị bằng Cookie

Khi bạn lần đầu truy cập 1 trang web, máy chủ luôn tạo ra 1 biến cookie dùng để định danh riêng cho thiết bị của bạn.

Giả sử biến này có tên là device-id.

Đương nhiên, giá trị của biến device-id là duy nhất, không trùng lặp.

Sau đó, biến cookie này được trả về và lưu trữ tại trình duyệt.

Mỗi khi trình duyệt gửi request đến máy chủ, biến device-id sẽ tự động đính kèm vào request.

Vì vậy, máy chủ có thể xác định được thiết bị nào đã gửi request thông qua giá trị của biến device-id.

1.2 Dùng Cookie để lưu trữ thông tin cấu hình

Cookie còn dùng để lưu trữ các thông tin cấu hình của người dùng.

Ví dụ, khi truy cập trang web A, người dùng có thể lựa chọn chế độ hiển thị là mặc định hoặc đơn giản.

Nếu người dùng chọn chế độ hiển thị đơn giản thì trình duyệt tiến hành gửi request đến máy chủ.

Tiếp theo, máy chủ xử lý thông tin và trả về giao diện đơn giản cho người dùng, kèm theo đó là biến cookie có tên là theme với giá trị simple.

Trình duyệt nhận và lưu trữ biến cookie theme.

Như vậy, trình duyệt hiện đang lưu trữ tổng cộng 2 biến cookie đó là device-idtheme.

Mỗi khi trình duyệt gửi request đến máy chủ những lần kế tiếp thì các biến cookie sẽ tự động đính kèm vào request.

Cookie tự động đính kèm vào request

Máy chủ nhận request. Sau đó, tiến hành xử lý thông tin rồi trả về kết quả phù hợp cho người dùng.

Tuy nhiên đối với những dữ liệu nhạy cảm như thông tin đăng nhập thì không nên lưu vào cookie.

Thay vào đó, bạn nên lưu vào session.

Vậy session khác gì so với cookie?

2. Session là gì?

Session là dữ liệu được lưu trữ trên máy chủ.

Quay lại ví dụ mình đã đề cập ở đầu bài viết, làm thế nào một trang web có thể ghi nhớ bạn đã đăng nhập trên một thiết bị nào đó.

Khi bạn đăng nhập thành công, máy chủ tạo một file có tên trùng với giá trị của biến device-id.

Bên trong file này sẽ lưu trữ biến session username chứa thông tin đăng nhập của người dùng.

Session được lưu trữ trên máy chủ

Mỗi khi trình duyệt gửi request đều kèm theo biến device-id.

Nhờ vào giá trị của biến device-id, máy chủ có thể dễ dàng biết được file nào đang chứa các biến session của riêng thiết bị này.

Tiếp theo là kiểm tra xem bên trong file có tồn tại biến session username hay không.

Nếu có, nghĩa là người dùng đã đăng nhập.

Còn nếu không, nghĩa là người dùng vẫn chưa đăng nhập.

3. Kết luận

Cookie và Session là 2 kiến thức rất quan trọng mà bạn cần phải nắm vững nếu muốn trở thành một lập trình viên web.

Nếu muốn tìm hiểu chuyên sâu hơn về Cookie và Session thì bạn hãy khảo khảo ngay các khóa học lập trình web của LetDiv nhé!

Tùng ViO

Tùng ViO

Mình là Tùng ViO, hiện tại đang là Founder và cũng là giảng viên tại LetDiv. Rất hân hạnh được làm quen với bạn!