Trích dẫn từ cùng RFC2109 bạn đọc:
* Set-Cookie từ máy chủ yêu cầu x.foo.com cho Miền = .foo.com sẽ
Được chấp nhận.
Vì vậy, subdomain.example.com
có thể thiết lập một cookie cho .example.com
. Càng xa càng tốt.
Các quy tắc sau áp dụng để chọn giá trị cookie áp dụng từ
trong số tất cả các cookie các tác nhân người dùng có.
Lựa chọn tên miền
Tên máy chủ đủ điều kiện của máy chủ gốc phải khớp tên miền
thuộc tính miền của cookie
Vì vậy, chúng ta có một trận đấu tên miền?
* A là một chuỗi FQDN và có dạng NB, trong đó N là một tên không trống
chuỗi, B có dạng .B 'và B' là chuỗi FQDN. (Vì vậy, xycom
khớp tên miền .y.com nhưng không phải y.com.)
Nhưng bây giờ example.com
sẽ không khớp tên miền .example.com
theo định nghĩa. Nhưng www.example.com
(hoặc bất kỳ "tên không trống" nào khác trong miền) sẽ. RFC về mặt lý thuyết đã bị lỗi thời bởi RFC2965 , trong đó chỉ ra những điều về việc buộc một dấu chấm hàng đầu cho các tên miền trong Set-Cookie2
hoạt động.
Quan trọng hơn, như được lưu ý bởi @Tony, là thế giới thực. Để có cái nhìn tổng quát về những gì tác nhân người dùng thực tế đang làm, hãy xem
NsCookieService.cpp của Firefox 3
và
Cookie_monster.cc của Chrome
Đối với quan điểm vào những gì các trang web thực tế đang làm, hãy thử chơi với wget
sử dụng --save-cookies
, --load-cookies
và --debug
để xem những gì đang xảy ra.
Bạn có thể thấy rằng trên thực tế hầu hết các trang web đang sử dụng một số kết hợp Set-Cookie
từ thông số RFC cũ hơn với các giá trị "Máy chủ", hoàn toàn không có dấu chấm hàng đầu (như twitter.com ) hoặc đặt giá trị Miền (có dấu chấm hàng đầu) và chuyển hướng đến một máy chủ như www.example.com
(như google.com ).