VietTechiesHIỂU CÔNG NGHỆ. MỞ GÓC NHÌN.
☰ Chuyên mục

Cookie giúp website nhớ người truy cập mà không cần mã nhận diện trình duyệt dùng chung trên toàn web, nhưng việc tải nội dung từ website khác lại cho phép theo dõi qua nhiều website

22/10/2026 · VietTechies · Biên tập

Một tủ máy chủ web với cáp mạng và đèn báo, dùng để minh họa hạ tầng web.


Muốn duy trì giỏ hàng, một website cần nhớ được người truy cập. Khoảng tháng 7 năm 1994, kỹ sư Netscape Lou Montulli tham dự một cuộc họp về máy chủ phục vụ mua sắm, theo bài hồi tưởng ông viết năm 2013. Ông phản đối việc cấp cho mỗi trình duyệt một mã định danh dùng chung để các website có thể nhận ra trình duyệt đó trên khắp web. Giải pháp thay thế của ông trở thành cookie web.

Điều bất ngờ nằm ở chỗ giới hạn ấy không còn ngăn được việc theo dõi. Một cookie vẫn có thể chỉ được gửi về máy chủ của mình, trong khi máy chủ ấy xuất hiện bên trong nhiều website khác nhau. Trình duyệt có thể liên tục gửi lại cùng một mã định danh dù người truy cập không chủ động mở website của máy chủ đó.

Khả năng ghi nhớ hữu ích và cơ chế theo dõi đều bắt nguồn từ cùng một quá trình trao đổi dữ liệu.

Website cần nối tiếp các lần tương tác

HTTP (Hypertext Transfer Protocol), giao thức truyền siêu văn bản dùng để trao đổi yêu cầu (request) và phản hồi trên web, tự nó không nối các yêu cầu liên tiếp của một người truy cập thành một phiên mua sắm. Ứng dụng cần một cách nào đó để liên kết yêu cầu tiếp theo với những lựa chọn người đó đã thực hiện.

Trong bài viết tháng 5 năm 2013, Montulli nhớ lại rằng trước cuộc họp về máy chủ mua sắm, đã có những đề xuất giúp website ghi nhớ người truy cập. Một đề xuất là cấp mã định danh duy nhất cho mỗi trình duyệt. Ông phản đối vì cùng một mã có thể được dùng trên nhiều website.

Ông nhớ rằng ý tưởng chung về cookie hình thành trong tuần tiếp theo. Website có thể gửi một mã định danh phiên cho trình duyệt, rồi trình duyệt gửi lại mã đó cho chính máy chủ ấy. Sau đó, ông mở rộng ý tưởng để cookie mang dữ liệu tổng quát hơn, hữu ích cho nhiều việc ngoài giỏ hàng. Ông ghi nhận những góp ý từ các kỹ sư đồng nghiệp, đặc biệt là John Giannandrea.

Đó là lời Montulli hồi tưởng về thời điểm và ý định ban đầu. Lời kể này giúp phác họa nguồn gốc với mốc thời gian gần đúng, chứ không xác định chính xác ngày phát minh hay khẳng định một người đã tự thiết kế mọi chi tiết.

Trình duyệt mang theo một ít dữ liệu trạng thái

Quá trình trao đổi cơ bản khá đơn giản. Máy chủ đưa trường tiêu đề Set-Cookie vào phản hồi. Trình duyệt lưu cookie rồi gửi lại giá trị của cookie trong trường tiêu đề Cookie ở những yêu cầu sau, nếu các yêu cầu đó đáp ứng quy tắc về phạm vi và chính sách áp dụng.

Giá trị ấy không nhất thiết phải chứa toàn bộ giỏ hàng. Nó có thể là mã định danh phiên để máy chủ tra cứu thông tin lưu ở phía mình. Trình duyệt mang theo khóa tra cứu; ứng dụng liên kết khóa đó với phiên đang tiếp diễn.

Cần phân biệt rõ điều này. Cookie là dữ liệu được trao đổi giữa trình duyệt và máy chủ. Cookie hữu ích ra sao tùy thuộc vào cách ứng dụng dùng dữ liệu ấy: duy trì giỏ hàng, ghi nhớ một tùy chọn hay nhận ra trình duyệt từng truy cập.

Cookie cũng không phải cách duy nhất để duy trì trạng thái. Trong bài viết về lịch sử cookie năm 2001, David M. Kristol, một trong những người đồng biên tập các tiêu chuẩn cookie, mô tả những cách khác như đưa dữ liệu trạng thái vào địa chỉ web hoặc các trường ẩn trong biểu mẫu. Những cách đó có nhược điểm liên quan đến điều hướng, sửa đổi và lưu bộ nhớ đệm. Cookie giúp việc xây dựng ứng dụng có lưu trạng thái trở nên dễ dàng hơn.

Máy chủ khác bên trong trang web

Montulli xác định việc cookie tương tác với nội dung nhúng là điều ông đã bỏ sót trong thiết kế ban đầu. Một trang có thể tải ảnh và các tài nguyên khác từ những máy chủ ngoài website mà người truy cập chọn mở. Các yêu cầu gửi đến những máy chủ ấy vẫn là yêu cầu, và cũng có thể tham gia trao đổi cookie.

Hãy xét cơ chế được mô tả trong đặc tả cookie về sau, công bố dưới dạng tài liệu Request for Comments (RFC) 6265. Một người mở website có chứa tài nguyên từ bên thứ ba, rồi mở website khác có nội dung từ chính bên thứ ba ấy. Nếu chính sách trình duyệt cho phép trao đổi cookie, máy chủ của bên thứ ba có thể nhận được cookie riêng của mình ở cả hai lần truy cập và nhận ra trình duyệt trên hai website.

Máy chủ đó không cần đọc cookie của bất kỳ bên nào trong hai bên xuất bản. Mã định danh riêng của máy chủ đã đủ để nối các lần truy cập. Vì vậy, giới hạn cookie về một máy chủ không có nghĩa là giới hạn máy chủ ấy chỉ xuất hiện trong các trang của một bên xuất bản.

Montulli nhớ lại việc các công ty quảng cáo tận dụng khả năng này và cuộc tranh luận sau đó về việc vô hiệu hóa cookie bên thứ ba. Ông cũng mô tả những cách sử dụng cookie chính đáng trên tài nguyên nhúng. Cơ chế kỹ thuật ấy không phân biệt một dịch vụ nhúng hữu ích với việc theo dõi mà người dùng không mong muốn.

Quy định về quyền riêng tư chưa phải mặc định trên trình duyệt

Quá trình xây dựng tiêu chuẩn đã tìm cách giải quyết vấn đề đó. RFC 2109 của Kristol và Montulli ra mắt vào tháng 2 năm 1997, sau phiên bản triển khai ban đầu của Netscape. Tài liệu quy định những hạn chế đối với phiên dùng cookie trong các giao dịch được kích hoạt tự động, chẳng hạn yêu cầu tải nội dung nhúng, khi các tên miền không đáp ứng quy tắc của đặc tả. Những tùy chọn cho phép bỏ qua các hạn chế này phải mặc định ở trạng thái tắt.

Đó là những yêu cầu được nêu trong đặc tả. Chúng không chứng minh rằng các trình duyệt đã áp dụng thiết lập mặc định về quyền riêng tư ấy. Trong bài viết lịch sử năm 2001 từ góc nhìn người tham gia, Kristol mô tả việc các nhà cung cấp trình duyệt vẫn bật cookie bên thứ ba bất chấp những hạn chế trong tiêu chuẩn.

Trong hồi tưởng về sau, Montulli nêu lý do riêng của ông cho việc giữ lại cookie bên thứ ba. Ông cho rằng dùng cookie có thể quan sát và kiểm soát, đồng thời để công chúng giám sát, vẫn tốt hơn những cơ chế theo dõi thay thế có thể khó quan sát hơn. Đó là đánh giá của ông trước một lựa chọn khó khăn, không phải bằng chứng rằng mọi giải pháp thay thế đều sẽ tệ hơn.

Tháng 4 năm 2011, RFC 6265 của Adam Barth ghi lại cách cookie thực sự hoạt động trên Internet. Tài liệu giải thích cách bên thứ ba nhận diện trình duyệt và cho phép các trình duyệt linh hoạt lựa chọn chính sách. Không nên lấy mô tả này để suy ngược về phiên bản triển khai năm 1994, hay xem đó là mô tả về mọi trình duyệt ngày nay.

Giỏ hàng đặt ra câu hỏi: làm sao một website có thể nhớ người truy cập? Tài nguyên nhúng bổ sung một câu hỏi khác: trình duyệt liên hệ với những máy chủ nào khi hiển thị website ấy? Cùng một cookie có thể quay về cùng một máy chủ trong khi người ngồi trước màn hình chuyển từ website này sang website khác.

Bài liên quan

Đọc bằng ngôn ngữ khác: English

Nguồn