Trong thế giới web hiện đại, gần như mọi ứng dụng đều cần duy trì trạng thái giữa các lần tương tác của người dùng — từ việc ghi nhớ phiên đăng nhập, giỏ hàng, đến cá nhân hoá trải nghiệm. Tuy nhiên, giao thức HTTP vốn là stateless (không lưu trạng thái), nghĩa là mỗi yêu cầu (request) gửi đến server đều độc lập và không “nhớ” thông tin từ lần trước. Chính vì thế, cookie ra đời như một cơ chế giúp duy trì trạng thái cho người dùng trên web.
Cookie là một tệp dữ liệu nhỏ mà trình duyệt lưu trữ tạm thời hoặc lâu dài, nhằm giúp server và client trao đổi thông tin hiệu quả hơn. Nó đóng vai trò quan trọng trong việc nhận diện người dùng, quản lý phiên, lưu tuỳ chọn cá nhân, và phục vụ phân tích hành vi truy cập. Dù có kích thước nhỏ, cookie lại ảnh hưởng sâu rộng đến cả hiệu năng, bảo mật, và quyền riêng tư của người dùng.
Trong bài viết này, mình cùng bạn tìm hiểu toàn diện về cookie — từ khái niệm, cấu trúc, cơ chế hoạt động, các loại cookie thường gặp, đến những rủi ro bảo mật và xu hướng thay đổi trong bối cảnh hiện nay. Mục tiêu là giúp chúng ta hiểu rõ cách cookie thực sự vận hành và cách áp dụng đúng trong các dự án web, vừa hiệu quả vừa an toàn.

1. Cookie là gì?
Cookie (hay còn gọi là HTTP cookie, web cookie, hoặc browser cookie) là một đoạn dữ liệu nhỏ mà server gửi đến trình duyệt khi người dùng truy cập website. Sau khi nhận, trình duyệt có thể lưu trữ thông tin này tạm thời hoặc lâu dài, rồi tự động gửi ngược lại cho server trong những lần truy cập tiếp theo.
Cơ chế này ra đời nhằm khắc phục điểm hạn chế lớn nhất của giao thức HTTP — đó là tính chất stateless, tức mỗi yêu cầu (request) được xử lý độc lập và không ghi nhớ trạng thái giữa các lần truy cập. Nhờ cookie, website có thể “ghi nhớ” người dùng là ai, họ đã đăng nhập chưa, đang chọn ngôn ngữ nào, hoặc có món hàng nào trong giỏ.
Về lịch sử, cookie được giới thiệu vào giữa thập niên 1990 bởi Netscape Communications, với mục tiêu ban đầu là lưu thông tin phiên làm việc của người dùng. Qua thời gian, cookie nhanh chóng trở thành một thành phần nền tảng của web, đóng vai trò quan trọng trong xác thực người dùng, lưu tùy chọn giao diện, cá nhân hóa trải nghiệm, và hỗ trợ phân tích hành vi truy cập phục vụ tối ưu hiệu suất cũng như quảng cáo.
Nói ngắn gọn, cookie là “trí nhớ tạm” của web – giúp các trang web trở nên thông minh và liền mạch hơn khi tương tác với người dùng.

Một cookie thực chất là một đoạn dữ liệu nhỏ được trình duyệt lưu trữ, bao gồm cặp name=value và một số thuộc tính giúp xác định phạm vi, thời hạn, cũng như cách thức hoạt động của cookie. Dưới đây là các thành phần cơ bản:
- Name – Value: Là cặp khóa – giá trị chính, ví dụ
sessionId=abc123. Đây là nội dung cốt lõi giúp server nhận diện người dùng hoặc lưu trữ thông tin tạm thời. - Domain: Chỉ định tên miền mà cookie áp dụng. Ví dụ
.example.comnghĩa là cookie có thể được truy cập từ tất cả các subdomain của trang này. - Path: Quy định đường dẫn trong website mà cookie có hiệu lực. Ví dụ
/shopthì cookie chỉ được gửi kèm khi truy cập các trang trong thư mục/shop. - Expires / Max-Age: Xác định thời gian tồn tại của cookie. Nếu không được đặt, cookie sẽ tự động xóa khi đóng trình duyệt (gọi là session cookie).
- Secure: Khi bật, cookie chỉ được gửi qua giao thức HTTPS, giúp bảo mật thông tin tránh bị lộ trên kết nối không mã hóa.
- HttpOnly: Giới hạn truy cập cookie từ JavaScript, ngăn ngừa tấn công Cross-Site Scripting (XSS) — một kỹ thuật thường dùng để đánh cắp dữ liệu người dùng.
- SameSite: Xác định cách cookie được gửi trong các yêu cầu từ trang khác (cross-site). Có ba chế độ:
- Strict: chỉ gửi cookie khi truy cập cùng một site.
- Lax: gửi cookie trong một số trường hợp an toàn (ví dụ click từ link ngoài).
- None: cho phép gửi cookie trong mọi trường hợp, nhưng phải đi kèm
Các thuộc tính này giúp nhà phát triển kiểm soát phạm vi, tính bảo mật và thời hạn của cookie một cách linh hoạt, phù hợp với từng nhu cầu cụ thể của ứng dụng web.

Việc hiểu rõ các loại cookie giúp ta lựa chọn đúng mục đích sử dụng và nhận diện được các rủi ro tiềm ẩn về bảo mật cũng như quyền riêng tư. Dưới đây là bốn loại cookie phổ biến nhất:
- Session Cookie (Cookie phiên):
Đây là loại cookie chỉ tồn tại trong suốt thời gian người dùng mở trình duyệt. Khi trình duyệt được đóng lại, cookie sẽ tự động bị xóa. Chúng thường được dùng để lưu session ID, giúp server nhận diện người dùng trong một phiên làm việc — chẳng hạn khi bạn đăng nhập vào tài khoản, thêm sản phẩm vào giỏ hàng, hoặc điền form nhiều bước. - Persistent Cookie (Cookie lưu lâu):
Không giống session cookie, persistent cookie có thời hạn xác định thông qua thuộc tính Expires hoặc Max-Age. Chúng vẫn tồn tại ngay cả sau khi người dùng đóng trình duyệt, cho đến khi hết hạn hoặc bị xóa thủ công. Loại cookie này thường dùng cho các tính năng như “Remember Me”, lưu ngôn ngữ, theme, hoặc cài đặt cá nhân để người dùng có trải nghiệm liền mạch hơn ở lần truy cập sau. - First-party Cookie (Cookie bên thứ nhất):
Được tạo bởi chính website mà người dùng đang truy cập (cùng domain). Đây là loại cookie “thân thiện” nhất vì phục vụ trực tiếp cho hoạt động của trang — ví dụ: ghi nhớ chế độ sáng/tối hoặc ngôn ngữ hiển thị. - Third-party Cookie (Cookie bên thứ ba):
Được tạo ra bởi một domain khác với trang mà người dùng đang truy cập, thường xuất hiện trong iframe, quảng cáo, hoặc các công cụ phân tích bên ngoài. Mục đích chính là theo dõi hành vi người dùng trên nhiều website khác nhau để phục vụ quảng cáo cá nhân hóa. Tuy nhiên, vì liên quan đến quyền riêng tư, loại cookie này hiện đang bị nhiều trình duyệt hạn chế hoặc chặn hoàn toàn.
Tóm lại, mỗi loại cookie mang một vai trò khác nhau — từ duy trì phiên làm việc, lưu tùy chọn người dùng đến phục vụ quảng cáo — và nhà phát triển cần cân nhắc kỹ lưỡng giữa tiện ích và tác động đến bảo mật, quyền riêng tư trước khi sử dụng.

Để hiểu vai trò thật sự của cookie trong việc duy trì trạng thái, ta cần nhìn vào cách mà chúng được tạo ra, lưu trữ, và gửi qua lại giữa client (trình duyệt) và server. Toàn bộ quá trình này được quy định trong RFC 6265 – tài liệu chuẩn về HTTP Cookie.
Quy trình cơ bản diễn ra như sau:
- Client → Server (Yêu cầu ban đầu):
Khi người dùng truy cập một website lần đầu tiên, trình duyệt gửi một HTTP request đến server. Ở thời điểm này, trình duyệt chưa có bất kỳ cookie nào liên quan đến domain đó, nên request được gửi đi “sạch”. - Server → Client (Tạo và gửi cookie):
Server nhận được yêu cầu, xử lý và phản hồi bằng HTTP response. Trong phần header của response, server có thể thêm dòng:
Set-Cookie: sessionId=abc123; Path=/; HttpOnly; Secure; SameSite=Lax<br>Dòng này yêu cầu trình duyệt lưu cookie sessionId cùng các thuộc tính đi kèm. Khi nhận được, trình duyệt sẽ lưu trữ cookie đó theo domain và path được quy định.
Client (Các yêu cầu tiếp theo) → Server:
Ở những lần truy cập sau, trình duyệt sẽ tự động gửi cookie tương ứng trong header request:
Cookie: sessionId=abc123
- Cookie chỉ được gửi nếu domain, path, và các điều kiện (như
SecurehoặcSameSite) phù hợp với yêu cầu hiện tại. - Server xử lý và phản hồi:
Dựa vào cookie nhận được, server có thể nhận diện người dùng, khôi phục trạng thái phiên (session), xác thực danh tính, hoặc hiển thị nội dung cá nhân hóa như “Xin chào, Toan!”.
Cookie hoạt động như một “cầu nối” giữa các lần truy cập. Nó giúp HTTP — vốn là giao thức không lưu trạng thái (stateless) — có thể “nhớ” người dùng và duy trì mối liên kết logic giữa các yêu cầu, từ đó tạo nên trải nghiệm web mượt mà và thông minh hơn.

Cookie là một trong những nền tảng quan trọng nhất giúp web hiện đại trở nên “cá nhân hóa” và thân thiện với người dùng hơn. Dù chỉ là những mẩu dữ liệu nhỏ, nhưng cookie đóng vai trò trong hầu hết các hoạt động thường ngày khi ta duyệt web. Dưới đây là những ứng dụng điển hình:
- Ghi nhớ đăng nhập:
Cookie giúp website lưu trạng thái đăng nhập của người dùng. Nhờ vậy, bạn không cần nhập lại tài khoản và mật khẩu mỗi lần mở lại trang — tính năng “Remember me” hoạt động dựa trên việc lưu cookie chứa thông tin phiên (session token) hoặc mã định danh người dùng. - Quản lý giỏ hàng:
Trong các trang thương mại điện tử, cookie giúp lưu thông tin giỏ hàng tạm thời, chẳng hạn danh sách sản phẩm bạn đã chọn nhưng chưa thanh toán. Ngay cả khi bạn tạm thời rời khỏi trang, giỏ hàng vẫn được giữ nguyên khi quay lại. - Cá nhân hóa trải nghiệm (Personalization):
Cookie lưu lại các tùy chọn cá nhân của người dùng như ngôn ngữ hiển thị, giao diện sáng/tối, hoặc cách sắp xếp bố cục. Điều này giúp mỗi lần truy cập, website có thể hiển thị đúng theo sở thích mà không cần cài đặt lại từ đầu. - Theo dõi và phân tích hành vi (Tracking & Analytics):
Cookie được dùng để ghi nhận các hành động của người dùng — ví dụ trang nào được xem nhiều, thời gian ở lại, hay đường dẫn điều hướng. Các công cụ như Google Analytics dựa vào cookie để tổng hợp dữ liệu giúp chủ website hiểu rõ hành vi người truy cập. - Quảng cáo và tiếp thị lại (Remarketing):
Đây là ứng dụng phổ biến của third-party cookie. Khi bạn truy cập một trang, cookie do bên thứ ba (như mạng quảng cáo) lưu lại có thể được dùng để hiển thị quảng cáo phù hợp trên các trang khác mà bạn ghé thăm. Đây là cơ chế đằng sau việc “quảng cáo bám đuôi” quen thuộc trên Internet.
Cookie giúp các website không chỉ lưu trữ trạng thái mà còn mang lại trải nghiệm liền mạch, cá nhân hóa và tối ưu hóa hiệu suất kinh doanh. Tuy nhiên, mặt trái của sự tiện lợi này là vấn đề bảo mật và quyền riêng tư

6. Vấn đề bảo mật và quyền riêng tư
Mặc dù cookie mang lại nhiều tiện ích, nhưng nếu không được thiết kế và quản lý cẩn thận, chúng có thể trở thành điểm yếu bảo mật nghiêm trọng. Vì cookie thường chứa thông tin định danh (session ID, token…) nên hacker có thể lợi dụng để đánh cắp hoặc giả mạo người dùng. Dưới đây là những rủi ro phổ biến và cách phòng tránh:
- Cookie theft / Session hijacking:
Đây là hình thức tấn công mà kẻ xấu đánh cắp cookie chứa thông tin phiên đăng nhập (session ID), sau đó sử dụng chúng để đăng nhập giả mạo vào tài khoản của nạn nhân. Tình huống này có thể xảy ra khi cookie được gửi qua kết nối không mã hóa (HTTP thay vì HTTPS). - Cross-Site Scripting (XSS):
Một trong những rủi ro phổ biến nhất. Nếu ứng dụng cho phép chạy script độc hại, kẻ tấn công có thể dùng JavaScript để đọc cookie của người dùng. Đó là lý do tại sao nên đặt thuộc tínhHttpOnlyđể ngăn JavaScript truy cập cookie, đặc biệt là các cookie chứa session token. - Cross-Site Request Forgery (CSRF):
Kiểu tấn công này lợi dụng việc trình duyệt tự động gửi cookie trong các yêu cầu đến website. Hacker có thể tạo một request độc hại khiến người dùng thực hiện hành động mà họ không hề hay biết (ví dụ: đổi mật khẩu, chuyển tiền…).
Để giảm thiểu rủi ro, các hướng dẫn từ OWASP (Open Web Application Security Project) khuyến nghị một số thực hành tốt:
- Đặt
HttpOnlycho mọi cookie chứa thông tin nhạy cảm. - Đặt
Secuređể cookie chỉ truyền qua HTTPS, đảm bảo dữ liệu không bị nghe lén. - Cấu hình
SameSitehợp lý:StricthoặcLaxgiúp giảm nguy cơ CSRF. - Không lưu thông tin nhạy cảm như mật khẩu, số thẻ tín dụng trong cookie.
- Thiết lập thời gian hết hạn hợp lý và xóa session khỏi server khi người dùng đăng xuất.
- Kết hợp token CSRF trong các form hoặc yêu cầu thay đổi trạng thái.
Cookie là công cụ mạnh mẽ nhưng cũng tiềm ẩn rủi ro lớn nếu không được quản lý đúng cách. Khi làm việc với cookie, mình luôn cố gắng tuân thủ nguyên tắc “càng ít dữ liệu nhạy cảm càng tốt” và kết hợp đầy đủ các cơ chế bảo mật cần thiết để bảo vệ người dùng và hệ thống.

Trong vài năm trở lại đây, cookie — đặc biệt là third-party cookie — đang trải qua một giai đoạn chuyển mình mạnh mẽ khi toàn bộ hệ sinh thái web hướng tới bảo vệ quyền riêng tư người dùng.
Trước kia, third-party cookie là nền tảng cho theo dõi hành vi và quảng cáo cá nhân hóa, cho phép các mạng quảng cáo ghi nhận hoạt động người dùng trên nhiều trang khác nhau. Tuy nhiên, điều này làm dấy lên lo ngại về việc thu thập và sử dụng dữ liệu cá nhân.
Các trình duyệt lớn như Safari, Firefox và Google Chrome đã hoặc đang giới hạn, thậm chí loại bỏ third-party cookie. Google, thông qua sáng kiến Privacy Sandbox, điều chỉnh chiến lược nhằm cân bằng giữa quyền riêng tư và hoạt động quảng cáo trực tuyến.
Thay vì theo dõi người dùng trực tiếp, Privacy Sandbox giới thiệu các công nghệ thay thế:
- Topics API: chia sẻ nhóm sở thích thay vì dữ liệu cá nhân.
- Protected Audience API: hiển thị quảng cáo mà không tiết lộ danh tính.
- Partitioned Cookies: phân tách cookie theo site để tránh chia sẻ dữ liệu.
- Storage Access API: cho phép truy cập cookie trong môi trường được kiểm soát.
Những thay đổi này phản ánh xu hướng “privacy-first web”, nơi cookie vẫn quan trọng nhưng phải tuân thủ nguyên tắc bảo mật cao hơn.
- First-party và session cookie tiếp tục đóng vai trò duy trì trải nghiệm người dùng.
- Third-party cookie đang dần bị thay thế bởi các giải pháp ẩn danh và bảo vệ quyền riêng tư hơn.
Tóm lại, cookie không biến mất mà đang tiến hóa, thích nghi với kỷ nguyên mới — nơi người dùng được tôn trọng và dữ liệu được kiểm soát chặt chẽ hơn.nguyên quyền riêng tư số.
8. Kết luận
Qua quá trình tìm hiểu, mình nhận thấy rằng cookie vẫn là một thành phần cốt lõi trong hoạt động của web hiện đại — đóng vai trò kết nối giữa các request rời rạc của HTTP, giúp duy trì trạng thái, lưu trải nghiệm cá nhân hóa và hỗ trợ nhiều tính năng tiện lợi cho người dùng. Tuy nhiên, chính vì khả năng lưu trữ và trao đổi dữ liệu đó mà cookie cũng trở thành điểm nhạy cảm về bảo mật và quyền riêng tư.
Ngày nay, trong bối cảnh “privacy-first web”, cookie đang được tái định hình: các trình duyệt hạn chế khả năng theo dõi của third-party cookie, trong khi vẫn giữ lại first-party cookie như nền tảng cho trải nghiệm người dùng. Điều này đòi hỏi lập trình viên và nhà phát triển web phải hiểu sâu hơn về cách cookie hoạt động, nắm rõ các thuộc tính như HttpOnly, Secure, SameSite, và áp dụng các thực hành bảo mật tốt nhất theo hướng dẫn từ OWASP hoặc các tiêu chuẩn mới.
Với mình, việc hiểu rõ cookie không chỉ là vấn đề kỹ thuật, mà còn là một phần quan trọng trong tư duy thiết kế hệ thống an toàn và tôn trọng người dùng. Biết cách dùng cookie đúng sẽ giúp ta tạo nên các ứng dụng vừa mượt mà, vừa bảo mật — một nền tảng cần thiết cho mọi dự án web hiện đại.
9. Tài liệu tham khảo
[1] MDN Web Docs, “HTTP cookies – Introduction, attributes, and security,” Mozilla Developer Network, 2025. [Online]. Available: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies
[2] J. Kristol and L. Montulli, “HTTP State Management Mechanism,” RFC 6265, Internet Engineering Task Force (IETF), Apr. 2011. [Online]. Available: https://datatracker.ietf.org/doc/html/rfc6265


