Cookie là gì? Cookie làm việc như thế nào?

Quản trị mạngCookie là một thứ cực kỳ đơn giản nhưng chúng lại rất hữu dụng cho việc điều hướng trong web. Các nhà thiết kế website đa phần đều sử dụng chúng vì chúng có thể mang lại cảm nhận người dùng tốt hơn và làm dễ dàng hơn trong việc thu thập thông tin một cách chính xác về khách truy cập của site.

Trong bài này, chúng tôi sẽ giới thiệu cho các bạn các kỹ thuật cơ bản về cookie cũng như một số các tính năng mà chúng cho phép.

Cookie là gì?

Có một định nghĩa ở đâu đó mà tôi đã đọc có định nghĩa về Cookie như sau: Cookie là một chương trình mà các website đặt vào ổ cứng của bạn. Chúng sẽ nằm trong máy tính và thu thập các thông tin về bạn và mọi thứ bạn thực hiện trên Internet, bất cứ khi nào website muốn, nó đều có thể download tất cả các thông tin mà cookie đã thu thập được.

Định nghĩa trên là hoàn toàn sai. Vấn đề thực ở đây là, Cookie không phải một chương trình, chúng không thể chạy giống như cách các chương trình vẫn chạy. Chính vì vậy chúng không thể thu thập các thông tin về chủ sở hữu của chúng. Chúng cũng không thể thu cập bất cứ thông tin cá nhân nào về bạn từ máy tính của bạn.

Còn đây mới là một định nghĩa hợp lệ về Cookie: Cookie là một đoạn văn bản mà một Web server có thể lưu trên ổ cứng của người dùng. Cookie cho phép một website lưu các thông tin trên máy tính của người dùng và sau đó lấy lại nó. Các mẩu thông tin sẽ được lưu dưới dạng cặp tên – giá trị (name-value).

Cho ví dụ, một website có thể tạo một số ID duy nhất cho mỗi khách truy cập và lưu số ID đó trên mỗi máy tính người dùng bằng một file cookie.

Nếu sử dụng Internet Explorer của Microsoft để duyệt web, bạn có thể thấy tất cả các cookie được lưu trên máy tính của mình. Địa điểm mà chúng thường cư trú là trong thư mục có tên c:\windows\cookies. Khi quan sát thư mục đó trên máy tính cua mình, bạn sẽ thấy rất nhiều file. Mỗi file là một file văn bản có chứa các cặp tên – giá trị và có một file cho mỗi một website đã đặt cookie trên máy tính của bạn.

Bạn có thể thấy trong thư mục, các file này đều rất đơn giản, chúng là các file văn bản thông thường. Bạn có thể thấy website nào đã đặt file lên máy tính của mình bằng cách quan sát tên file (thông tin cũng được lưu bên trong file). Bạn có thể mở mỗi file bằng cách kích vào nó.

Cho ví dụ, chúng tôi đã truy cập vào goto.com, và site này đã đặt một cookie vào máy tính của tôi. File cookie cho goto.com gồm có các thông tin dưới đây:

    UserID    A9A3BECE0563982D    www.goto.com/

Goto.com đã lưu trên máy tính của tôi một cặp tên – giá trị. Tên của giá trị là UserID, và giá trị là A9A3BECE0563982D. Lần đầu khi truy cập goto.com, site đã gán cho tôi một giá trị ID duy nhất và lưu nó trên máy tính của tôi.

(Lưu ý rằng có thể có vài giá trị khác được lưu trong file. Đó là các thông tin "quản gia" cho trình duyệt).

Amazon.com lưu nhiều thông tin hơn, khi quan sát file cookie mà Amazon đã tạo trên máy tính của tôi, nó gồm có các nội dung sau:

   session-id-time  954242000  amazon.com/
 session-id  002-4135256-7625846  amazon.com/
 x-main  eKQIfwnxuF7qtmX52x6VWAXh@Ih6Uo5H  amazon.com/
 ubid-main  077-9263437-9645324  amazon.com/

Nó thể hiện rằng Amazon lưu một user ID chính và một ID cho mỗi session, và thời gian session được bắt đầu trên máy tính của tôi.

Đa số các site chỉ lưu một mẩu thông tin - user ID – trên máy tính của bạn. Tuy nhiên một site có thể lưu nhiều cặp tên-giá trị nếu nó muốn.

Một cặp tên-giá trị đơn giản là một mẩu dữ liệu được đặt tên. Nó không phải một chương trình, không thể thực hiện một việc gì. Một website chỉ có thể lấy về các thông tin mà nó đã đặt trên máy tính của bạn. Nó không thể lấy các thông tin từ các file cookie khác, cũng không thể lấy các thông tin khác từ máy tính của bạn.

Dữ liệu cookie được truyền tải như thế nào?

Như những gì các bạn thấy trong phần trước, dữ liệu cookie đơn giản là các cặp name-value được website lưu trên ổ cứng của bạn. Đó là tất cả dữ liệu về cookie. Các website lưu dữ liệu và sau đó nó lấy lại dữ liệu này. Một website chỉ có thể nhận dữ liệu mà nó đã lưu trên máy tính của bạn. Nó không thể nhòm ngó cookie khác hoặc bất cứ thứ gì trong máy tính của bạn.

Unfinished URL
Khi bạn đánh một Url vào trình duyệt, máy chủ web có thể tìm trong filecookie của bạn

Dữ liệu được truyền tải như sau:

- Nếu bạn đánh URL của một website nào đó vào thanh địa chỉ, trình duyệt sẽ gửi một yêu cầu đến website. Ví dụ, nếu bạn nhập URL https://quantrimang.com vào trình duyệt, trình duyệt sẽ liên hệ với máy chủ của Quản trị mạng và yêu cầu trang chủ của nó.

- Khi trình duyệt thực hiện công việc này, nó sẽ tìm kiếm trong máy tính của bạn file cookie mà Quản trị mạng đã thiết lập. Nếu nó tìm thấy file cookie của Quản trị mạng thì trình duyệt sẽ gửi đi tất cả các cặp name-value trong file tới máy chủ của Quản trị mạng với URL. Nếu nó không tìm thấy, nó sẽ không gửi dữ liệu cookie.

- Web server của Quản trị mạng sẽ nhận dữ liệu cookie và yêu cầu cho trang chủ. Nếu cặp nó nhận được các cặp name-value thì Quản trị mạng có thể sử dụng chúng.

- Nếu không có cặp name-value nào được nhận, Quản trị mạng biết rằng đây là lần đầu tiên bạn truy cập vào website này. Máy chủ của nó sẽ tạo một ID mới cho bạn trong cơ sở dữ liệu của Quản trị mạng và sau đó gửi các cặp name-value đến máy tính của bạn trong header cho trang web mà nó sẽ gửi đi. Máy tính của bạn sẽ lưu lại các cặp name-value này trên ổ cứng của mình.

- Web server có thể thay đổi cặp name-value hoặc bổ sung các cặp mới bất cứ khi nào bạn truy cập vào site và yêu cầu trang.

Có nhiều mẩu thông tin khác mà máy chủ có thể gửi với cặp name-value. Một trong số đó là ngày hết hạn expiration date. Khác nữa là đường dẫn path (để site có thể liên kết với các giá trị cookie với các phần khác của nó).

Bạn có thể điều khiển quá trình này. Có thể thiết lập tùy chọn trong trình duyệt của mình để trình duyệt báo tin cho bạn mỗi khi site gửi các cặp name-value đến. Sau đó bạn có thể chấp nhận hoặc từ chối các giá trị này.

Các website sử dụng cookie như thế nào?

Cookie được mở ra vì chúng giải quyết một vấn đề lớn cho người thực thi website. Trong cảm nhận rộng nhất, một cookie cho phép một site có thể lưu các thông tin về trạng thái trên máy tính của bạn. Thông tin này cho phép một website có thể nhớ trạng thái của trình duyệt của bạn là gì. ID là một mẩu thông tin trạng thái – nếu một ID tồn tại trên máy tính của bạn, site biết rằng bạn đã truy cập vào nó trước đó. Trạng thái là, “Trình duyệt của bạn đã truy cập vào site ít nhất một lần” và site biết ID từ lần truy cập đó.

Các website sử dụng cookie theo nhiều cách khác nhau. Đây là một số trường hợp được sử dụng nhiều:

- Site có thể xác định một cách chính xác số lượng người truy cập site. Chỉ có một cách để site có thể đếm chính xác số lượng khách truy cập là thiết lập một cookie với một ID duy nhất cho mỗi khách. Sử dụng cookie, các site có thể xác định:

    • Có bao nhiêu khách truy cập đến
    • Có bao nhiêu khách truy cập mới và khách truy cập lặp lại.
    • Tần suất một khách truy cập vào trang.

Cách một website có thể thực hiện điều này là bằng sử dụng cơ sở dữ liệu. Lần đầu khi một khách truy cập đến, site sẽ tạo một ID mới trong cơ sở dữ liệu và gửi ID dưới dạng một cookie. Lần sau khi người dùng này truy cập trở lại, site có thể tăng số đếm có liên quan với ID trong cơ sở dữ liệu và biết số lần khách truy cập vào trang.

- Site có thể lưu các sở thích người dùng để thể tạo sự khác biệt giữa các khách truy cập (có thể nói website cho phép bạn có khả năng tùy chỉnh). Cho ví dụ, nếu bạn truy cập msn.com, nó sẽ cung cấp cho bạn khả năng thay đổi nội dung, giao diện và màu sắc. Nó cũng cho phép bạn nhập vào zip code và có thể  nhận được các thông tin về dự báo thời tiết theo khu vực. Khi bạn nhập vào zip code, gặp giá trị name-value sau sẽ được thêm vào file cookie của MSN.

 WEAT  CC=NC%5FRaleigh%2DDurham&REGION=  www.msn.com/

- Các site thương mại điện tử có thể thực hiện các nhiệm vụ khác như các tùy chọn giỏ hàng và thanh toán. Cookie sẽ gồm một ID và cho phép site giữ liên hệ với bạn khi bạn cần thêm những thứ khác vào giỏ hàng của mình. Mỗi một thứ mà bạn thêm vào giỏ hàng được lưu lại trong cơ sở dữ liệu của site cùng với giá trị ID của bạn. Khi bạn thanh toán, site biết những gì có trong giỏ hàng của bạn bằng cách lấy về tất cả các thông tin cần thiết từ cơ sở dữ liệu. Quả thực sẽ không thể thực hiện một cơ chế mua sắm thuận tiện nếu không có cookie hay một thứ gì đó giống như chúng.

Trong tất cả các ví dụ này, lưu ý rằng những gì cơ sở dữ liệu có thể lưu là những gì bạn đã chọn từ site, trang mà bạn đã xem, những thông tin mà bạn cung cấp cho site trên các biểu mẫu trực tuyến,… Tất cả các thông tin này đều được lưu trong cơ sở dữ liệu của site và trong hầu hết các trường hợp, cookie gồm một ID duy nhất là tất cả những gì được lưu trên máy tính của bạn.

Các vấn đề với cookie

Cookie không phải  một cơ chế hoàn hảo, tuy nhiên chúng cho phép thực hiện một số thứ mà không có chúng sẽ không thể thực hiện. Đây là một vài thứ làm cho cookie không hoàn hảo.

- Người dùng thường xuyên chia sẻ máy tính – Bất cứ máy tính nào được sử dụng ở nơi công cộng và các máy tính được sử dụng trong môi trường văn phòng hoặc ở nhà, được chia sẻ bởi nhiều người dùng. Hãy giả sử rằng bạn sử dụng một máy tính chung (ví dụ trong thư viện) để mua một thứ gì đó trên mạng. Trang web mà bạn mua sẽ để lại một cookie trên máy tính đó và người dùng máy tính sau bạn sẽ có thể mua thứ gì đó từ trang mà bạn sử dụng tài khoản của mình để mua sắm. Các trang mua sắm thường cảnh báo về vấn đề này và đó là lý do tại sao. Thậm chí lỗi cũng có thể xảy ra. Cho ví dụ, tôi có một anh bạn đã có một lần sử dụng máy tính của vợ để mua một món hàng trên Amazon. Sau đó khi vợ anh ta truy cập vào Amazon và vô tình kích nút "one-click" mà không nhận ra rằng nó đã thực hiện hành động mua một cuốn sách bằng kích chuột đó.

Một thứ giống như máy tính Windows NT hoặc máy tính UNIX sử dụng các tài khoản đúng cách, thì điều này không thành vấn đề. Các tài khoản sẽ tách biệt được các cookie của người dùng. Tuy nhiên trong các hệ điều hành khác chúng không cho phép như vậy thì đây thực sự là một vấn đề nghiêm trọng.

- Cookie bị xóa – Nếu bạn gặp vấn đề với trình duyệt của mình và gọi hỗ trợ kỹ thuật, chắc chắn thứ đầu tiên mà hỗ trợ kỹ thuật sẽ yêu cầu bạn cần thực hiện là xóa tất cả các file Internet tạm thời trên máy tính của mình. Khi thực hiện điều này, bạn sẽ mất tất cả các file cookie. Lúc này, khi bạn truy cập lại site, site đó sẽ nghĩ bạn là một người dùng mới và sẽ gán cho bạn một cookie mới. Điều này làm sai bản ghi của site về số lượng khách truy cập mới và khách truy cập quay trở lại, và nó cũng làm khó cho bạn trong việc khôi phục các sở thích đã được lưu trước đó. Đây là lý do tại sao site yêu cầu bạn đăng ký trong một số trường hợp – nếu bạn đăng ký với một user name và password, bạn có thể đăng nhập, thậm chí nếu mất file cookie của mình bạn vẫn có thể khôi phục lại được các sở thích. Nếu các giá trị của sở thích được lưu trực tiếp trên máy tính (như ví dụ xem dự báo thời tiết trên MSN ở trên), thì việc khôi phục là không thể. Điều này lý giải tại sao nhiều site lưu tất cả thông tin người dùng trong một cơ sở dữ liệu và chỉ lưu giá trị ID trên máy tính của người dùng.

- Đa máy tính – Nhiều người dùng thường sử dụng nhiều máy tính trong một ngày. Cho ví dụ, tôi có một máy ở văn phòng, một máy ở nhà và một laptop để thỉnh thoảng đi công tác. Trừ  khi site được thiết kế để khắc phục vấn đề này, bằng không tôi sẽ có ba file cookie trên ba máy tính này. Bất kỳ site nào mà tôi truy cập từ cả ba máy tính này sẽ nhận diện tôi là ba người dùng hoàn toàn khác biệt. Đây có thể là một vấn đề trong việc thiết lập các sở thích. Lúc này một site nào cho phép đăng ký và lưu các sở thích sẽ cho phép sử dụng cùng một tài khoản trên cả ba máy, tuy nhiên các chuyên gia phát triển site phải lập kế hoạch cho vấn đề này từ khi thiết kế.

Nếu bạn truy cập các URL như minh chứng trong phần trước từ một máy tính và sau đó thử truy cập lại từ một máy tính khác, bạn sẽ thấy danh sách history hoàn toàn khác nhau. Điều này là vì máy chủ đã tạo hai ID cho bạn, mỗi một ID cho một máy.

Chắc chắn sẽ không dễ dàng để giải quyết được các vấn đề trên, ngoại trừ việc yêu cầu người dùng đăng ký và lưu mọi thứ trong cơ sở dữ liệu tập trung.
Khi bạn đăng ký với một hệ thống đăng ký của website, vấn đề sẽ được giải quyết theo cách dưới đây:

Site sẽ nhớ giá trị cookie của bạn và lưu nó với các thông tin đăng ký của bạn. Nếu bạn bỏ chút thời gian để đăng nhập từ bất kỳ máy tính nào (hoặc một máy tính có bị mất file cookie), thì máy chủ sẽ thay đổi file cookie trên máy tính đó để có chứa ID có liên quan với các thông tin đăng ký của bạn. Chính vì vậy bạn có thể có nhiều máy tính cùng với một giá trị ID.

Cookie trên Internet: Các vấn đề riêng tư

Nếu bạn đã đọc đến đây, chắc chắn bạn sẽ phân vân tại sao có một sự phản ứng như vậy trong dư luận về các cookie và sự riêng tư Internet. Bạn đã thấy trong bài này rằng cookie chỉ là các file văn bản và cũng thấy rằng chúng cung cấp rất nhiều sự hữu dụng trên web.

Tuy nhiên có hai thứ đã gây ra sự phản ứng mạnh mẽ trong dư luận về cookie:

- Đầu tiên là thứ đã quấy rầy khách hàng nhiều năm qua. Hãy giả sử rằng bạn mua một thứ nào đó theo phương pháp đặt hàng qua mail. Công ty cung cấp sẽ có tên, địa chỉ và số điện thoại qua đơn đặt hàng của bạn, họ cũng biết các mục gì bạn đã mua. Sau đó công ty này có thể bán thông tin đó cho một công ty khác, những công ty cũng muốn bán các sản phẩm tương tự tới bạn. Đó là nguồn gốc tạo nên việc tiếp thị từ xa và thư rác.

Trên một website, một site không chỉ lần theo các hành động mua bán của bạn mà nó còn biết các trang bạn đã đọc, các quảng cáo bạn đã kích,… Nếu sau đó bạn mua một thứ gì và nhập vào địa chỉ và tên của mình, site sẽ biết thêm nhiều hơn về bạn. Điều này làm cho mục tiêu chính xác hơn và cũng làm cho nhiều người cảm thấy khó chịu.

- Vấn đề thứ hai là sự duy nhất đối với Internet. Có một số nhà cung cấp cơ sở hạ tầng có thể tạo các cookie trực quan trên nhiều site. DoubleClick là một ví dụ nổi tiếng nhất về vấn đề này. Nhiều công ty sử dụng DoubleClick để phục vụ cho việc quảng cáo bằng banner trên các site của họ. DoubleClick có thể đặt các file ảnh nhỏ (1x1 px) trên site để cho phép nó load các cookie trên máy tính của bạn. Sau đó DoubleClick có thể lần theo hành động của bạn qua nhiều site. Nó có thể thấy chuỗi tìm kiếm mà bạn đã đánh vào cỗ máy tìm kiếm. Vì nó có thể thu cập quá nhiều thông tin như vậy về bạn từ nhiều site nên DoubleClick có thể tạo ra các profile rất phong phú. Điều này rất giống với việc gián điệp và đó cũng là nguyên nhân gây ra sự phản ứng.

Thứ Ba, 17/04/2018 10:28
  • 4 ★ 11 👨
  • 13.825