Khi bạn vào một quán bún hay phở, thông thường bạn sẽ thấy trên tường hay mép bàn có ghi số. Sau khi bạn ăn xong, kêu tính tiền. Thường thì bạn sẽ nghe thấy câu quen thuộc: Khác bàn số 9 tính tiền. Và sau đó chủ quán sẽ nói: Dạ của anh hết tám chục. Họ không cần hỏi lịa là bạn hay gia đình bạn đã ăn gì. Họ chỉ cần biết bạn ngồi bàn số 9.
Có một điều rất kỳ lạ.Bạn mở Facebook.
Đã đăng nhập từ tuần trước.
Hôm nay mở lại.
Facebook vẫn biết:
"Đây là bạn."
😄
Bạn vào Shopee.
Giỏ hàng vẫn còn.
Bạn vào Gmail.
Không cần nhập lại mật khẩu.
Bạn vào YouTube.
Video đang xem dở vẫn còn.
🤔
Website làm cách nào để nhớ được bạn?
Có phải máy tính của bạn đang bị "theo dõi"?
Hay website có trí nhớ siêu phàm?
😅
Không.
Có một "nhân vật" làm việc âm thầm phía sau.
Tên của nó là:
Cookie.
🍪
Cookie là gì?
Cookie là một đoạn dữ liệu nhỏ mà website lưu trên trình duyệt của người dùng để ghi nhớ thông tin giữa các lần truy cập.
Cookie thường được dùng để:
- Ghi nhớ đăng nhập
- Lưu ngôn ngữ
- Lưu giỏ hàng
- Ghi nhớ tùy chọn của người dùng
- Theo dõi phiên truy cập
Ví dụ đời thường 🍜
Bạn đến quán cà phê.
Nhân viên đưa bạn một chiếc thẻ nhỏ.
Trên thẻ ghi:
Bàn số 12😄
Bạn cầm thẻ.
Đi quanh quán.
Một lúc sau quay lại.
Đưa thẻ.
↓
Nhân viên biết ngay:
À.
Khách ngồi bàn 12.
Không cần hỏi lại từ đầu.
Cookie cũng hoạt động gần giống như vậy.
Nó giống như một chiếc thẻ nhỏ mà website đưa cho trình duyệt giữ hộ.
Cookie có lưu trên server không?
Không.
Đây là điều rất nhiều người mới nhầm.
Cookie được lưu:
👉 Trên trình duyệt của người dùng.
Ví dụ.
Chrome.
Firefox.
Edge.
Safari.
...
Mỗi trình duyệt sẽ giữ Cookie riêng.
Đó là lý do.
Bạn đăng nhập Facebook trên Chrome.
Nhưng mở Edge.
Lại phải đăng nhập lại.
😄
Cookie giúp website nhớ điều gì?
Ví dụ.
Bạn vào một website bán hàng.
Chọn:
🌙 Giao diện tối.
↓
Lần sau quay lại.
Website vẫn hiện giao diện tối.
😎
Hoặc.
Bạn chọn:
🇻🇳 Tiếng Việt.
↓
Ngày mai mở lại.
Website vẫn dùng tiếng Việt.
Không phải website nhớ.
Mà là...
Cookie nhớ.
Ví dụ đăng nhập 😄
Bạn đăng nhập thành công.
Website tạo Cookie.
Ví dụ:
user_id = 25Hoặc:
login_token = abc123xyz😎
Lần sau.
Bạn mở website.
Trình duyệt tự gửi Cookie đó.
Website nhìn vào.
↓
Biết ngay:
À.
Đây là người đã đăng nhập.
Không cần nhập mật khẩu nữa.
Cookie có phải là mật khẩu không?
Không.
😄
Đây là hiểu lầm rất phổ biến.
Website không nên lưu:
Tên đăng nhập
Mật khẩuvào Cookie.
Thay vào đó.
Thường chỉ lưu:
Một mã nhận dạng.
Ví dụ.
A8F5D2X9...Website nhận mã đó.
↓
Đối chiếu với database.
↓
Biết người dùng là ai.
An toàn hơn rất nhiều.
Cookie có hết hạn không?
Có.
😄
Ví dụ.
Website có thể tạo Cookie sống:
30 phút.
1 ngày.
7 ngày.
30 ngày.
Hoặc:
1 năm.
Khi hết hạn.
Cookie tự biến mất.
↓
Bạn phải đăng nhập lại.
Cookie và Session có giống nhau không?
Không.
Nhưng chúng là "đồng đội".
😎
Cookie:
📍 Lưu trên trình duyệt.
Session:
📍 Lưu trên server.
Thông thường.
Cookie chỉ giữ:
"Mã số."
Còn Session giữ:
Thông tin thật.
Đó là lý do bài tiếp theo chúng ta sẽ học:
Session vs Cookie.
InfinityFree Case 😅
Có bạn hỏi mình.
"Anh ơi.
Em đăng nhập thành công.
Nhưng cứ tắt trình duyệt là bị đăng xuất."
😅
Sau khi kiểm tra.
Phát hiện.
Cookie được tạo.
Nhưng thời gian sống là:
0🤡
Nghĩa là.
Chỉ cần đóng trình duyệt.
Cookie biến mất.
Đăng nhập cũng biến mất.
Không phải PHP lỗi.
Chỉ là Cookie hết hạn.
Một hiểu lầm rất phổ biến 🤡
Nhiều người nghĩ.
Cookie là virus.
Không.
Cookie chỉ là dữ liệu.
Bản thân Cookie không nguy hiểm.
Điều quan trọng là:
Website lưu gì trong Cookie.
Nếu lưu thông tin nhạy cảm không đúng cách.
Mới có vấn đề.
Vì sao nhiều website hỏi xin phép Cookie?
Có lẽ bạn từng thấy.
Vừa mở website.
Hiện ngay.
🍪
"This website uses cookies..."
😄
Đó là vì nhiều quốc gia có quy định về quyền riêng tư.
Website cần thông báo cho người dùng nếu sử dụng Cookie để ghi nhớ hoặc theo dõi hoạt động.
Xóa Cookie thì sao?
Ví dụ.
Bạn xóa toàn bộ Cookie.
😅
Điều gì xảy ra?
Rất nhiều website sẽ:
✔ Đăng xuất
✔ Quên ngôn ngữ
✔ Quên giao diện
✔ Quên giỏ hàng
Không phải tài khoản mất.
Chỉ là.
Website không còn "chiếc thẻ nhận diện" nữa.
Một mẹo cực hay 😎
Nếu website của bạn.
Đăng nhập lúc được.
Lúc không.
Hoặc.
Người dùng liên tục bị đăng xuất.
Hãy kiểm tra:
✔ Cookie có được tạo không?
✔ Cookie có hết hạn chưa?
✔ Trình duyệt có chặn Cookie không?
Đây là nguyên nhân rất phổ biến.
Debug kiểu dev thật 😎
✅ 1. Kiểm tra Cookie trên trình duyệt
Developer Tools giúp xem tất cả Cookie hiện có.
✅ 2. Đừng lưu mật khẩu trong Cookie
Hãy dùng Token.
✅ 3. Kiểm tra thời gian hết hạn
Nhiều lỗi chỉ vì Cookie hết hạn quá sớm.
✅ 4. Thử bằng chế độ Ẩn danh
Incognito thường không dùng lại Cookie cũ.
Rất hữu ích khi debug.
Checklist chuẩn không cần chỉnh 😎
☑ Cookie lưu trên trình duyệt
☑ Cookie giúp ghi nhớ người dùng
☑ Không lưu mật khẩu vào Cookie
☑ Cookie có thời gian hết hạn
☑ Cookie và Session không giống nhau
☑ Cookie không phải virus
FAQ nhanh
Cookie có phải là Session không?
→ Không.
Cookie lưu trên trình duyệt, Session thường lưu trên server.
Cookie có làm website nhanh hơn không?
→ Không trực tiếp.
Nó giúp website ghi nhớ người dùng và giảm việc nhập lại thông tin.
Xóa Cookie có sao không?
→ Không.
Bạn chỉ có thể phải đăng nhập lại hoặc thiết lập lại một số tùy chọn.
Có phải mọi website đều dùng Cookie?
→ Rất nhiều website hiện nay đều sử dụng Cookie dưới một hình thức nào đó.
Bạn có thể cũng đang gặp 😭
👉 White Screen of Death – Trang trắng xóa không báo lỗi
👉 PHP login đúng password nhưng vẫn fail
👉 isset() vs empty() khác nhau thế nào?
👉 var_dump() là "vũ khí bí mật" của newbie
👉 echo debug và nghệ thuật "soi từng bước"
👉 Comment code đúng cách để khỏi tự giết mình
👉 Vì sao bug lúc có lúc không?
Tổng kết
Cookie giống như chiếc vé giữ xe.
😄
Bạn đưa xe vào.
Nhân viên không ghi nhớ khuôn mặt của bạn.
Họ chỉ đưa cho bạn một chiếc vé.
Khi quay lại.
Bạn đưa vé.
↓
Họ biết chiếc xe nào là của bạn.
Website cũng vậy.
Nó không "nhớ" từng người dùng theo cách con người nhớ.
Nó chỉ nhìn vào chiếc "vé" mà trình duyệt gửi lên.
Đó chính là Cookie.
Nhờ có Cookie.
Bạn không phải đăng nhập mỗi lần mở Facebook.
Không phải chọn lại ngôn ngữ.
Không phải thêm lại từng món hàng vào giỏ.
Và nếu bạn chỉ nhớ một điều từ bài này, hãy nhớ:
Cookie không giúp website nhớ bạn.
Cookie chỉ giúp website nhận ra rằng: "À, đây vẫn là người dùng cũ." 🍪