2009-07-15 33 views
16

Một miền có thể tạo nhiều cookie trên trình duyệt web của khách truy cập không? Nếu có, khi người dùng truy cập trang web, cookie nào sẽ được gửi đến máy chủ? Và tại sao một trang web sẽ tạo ra nhiều cookie?Có thể một tên miền có nhiều cookie không?

Tôi đã kiểm tra cài đặt Cookie của Trình duyệt Google Chrome của mình, thấy rằng có nhiều cookie của nytimes.com.

Nếu máy chủ muốn lưu trữ nhiều cặp khóa/giá trị trong cookie, chúng có thể được lưu trữ trong cùng cookie không?

multiple cookies

cookies-1

cookies-2

Trả lời

14

Có :)

tôi sẽ suy đoán rằng các cookie được tạo ra bởi các thành phần riêng biệt của trang web, mà được tạo ra bởi các nhóm riêng biệt của các nhà phát triển. Chúng tôi, của tất cả mọi người, nên nhận ra rằng đây thường là trường hợp khi chúng tôi cần để có được một số phát triển được thực hiện nhưng không có thời gian để chờ đợi cho sự hợp tác hoặc cho một nhóm khác để phát triển một lớp cần thiết cho chúng tôi.

Từ wikipedia:

đếm liên quan tối đa lưu trữ các tập tin cookie cho mỗi tên miền cho các trình duyệt chính là:

  • Firefox 3.0: 50
  • Opera 9: 30
  • Internet Explorer 7 : 50
1

Khi bạn viết một chương trình, bạn có chỉ sử dụng một biến không? Không có quyền?

Nguyên tắc tương tự ở đây - cookie chỉ là cặp khóa/giá trị mà chương trình của bạn (máy chủ/khách hàng) có thể sử dụng.

+0

Bạn có nghĩa là một cookie chỉ có thể tiết kiệm một cặp khoá/giá trị? Tôi đã nghĩ rằng các cặp khóa/giá trị khác nhau có thể được lưu trữ trong cùng một cookie. – ninikin

9

Một miền có thể tạo nhiều cookie trên trình duyệt web của khách truy cập không?

Có. Giới hạn chính xác tùy thuộc vào trình duyệt, Internet Explorer used to accept 20 but increased this to 50.

Nếu có, khi người dùng truy cập trang web, cookie nào sẽ được phân phối đến máy chủ?

Tất cả trong số họ

Và tại sao một trang web tạo ra nhiều cookie?

Vì vậy, bạn không cần phải nối tiếp tất cả dữ liệu (có thể là từ các phần không liên quan của hệ thống) trong một cookie.

1

Có, một miền có thể tạo nhiều cookie. Số lượng tối đa varies theo trình duyệt.

0

-Mỗi trang web có thể tạo bất kỳ số lượng cookie nào mà bạn mong muốn. (Nhưng đường nối này có thể khác nhau từ trình duyệt đến trình duyệt)

-Khi người dùng truy cập trang web, tất cả các cookie đang hoạt động sẽ được gửi.

-Nó có ý nghĩa khi có nhiều cookie để lưu trữ dữ liệu riêng biệt. Trong một so sánh cực đoan so sánh cookie với các lớp học;)

5

Cookie chỉ là một cặp khóa/giá trị duy nhất, với cài đặt miền, đường dẫn, hết hạn và truy cập tùy chọn.

lý do để tách dữ liệu vào các tập tin cookie riêng biệt bao gồm:

  • dễ dàng hơn để duy trì mã - bit khác nhau của trang web mà cần phải lưu trữ nhà nước không cần phải tương thích với nhau để đóng gói tất cả vào một cookie .
  • Quản lý người dùng dễ dàng hơn - người dùng cuối (bạn) có thể xem dễ dàng hơn những gì được lưu trữ và có thể xóa một cách có chọn lọc các cookie nhất định.
  • Sử dụng khác nhau - ví dụ: cookie giữ khóa phiên của bạn có thể được đánh dấu secure; httpOnly;, trong khi các cookie giữ tùy chọn giao diện người dùng vẫn có thể được truy cập qua javascript.
  • Giảm kích thước yêu cầu - nếu một số cookie chỉ được sử dụng cho một số trang nhất định, thuộc tính path có thể được sử dụng để chúng không được gửi không cần thiết cho các trang mà chúng không cần thiết.
4

Máy chủ có thể chỉ định bất kỳ số lượng cookie nào và mỗi cookie được chỉ định trong tiêu đề Set-Cookie riêng của nó.

Mỗi tiêu đề Set-Cookie chứa ít nhất cặp CookieName=CookieValue và có thể chứa các cặp key=value khác ngoài thuộc tính secure hoặc httpOnly. Các cặp và thuộc tính bổ sung này là siêu dữ liệu tham chiếu đến cookie thực tế và không thể được sử dụng để đặt cookie bổ sung.

Khi khách hàng gửi cookie trở lại máy chủ, nó kết hợp tất cả thành một tiêu đề Cookie duy nhất. Điều này là có thể vì khách hàng không bao giờ gửi lại siêu dữ liệu, chỉ tên và giá trị của cookie.

xem xét trao đổi HTTP này:

GET/HTTP/1.1 
Host: www.example.com 

HTTP/1.1 302 Found 
Location: http://www.example.com/index.html 
Set-Cookie: UserID=12345; Expires=Wed, 09 Jun 2021 10:18:14 GMT; domain=.example.com;path=/index.html; httpOnly` 
Set-Cookie: SessionID=6478; domain=.example.com;path=/index.html; httpOnly 
Set-Cookie: foo=bar 

GET /index.html HTTP/1.1 
Host: www.example.com 
Cookie: UserID=12345; SessionID=6478; foo=bar 
Các vấn đề liên quan