2010-01-16 33 views
5

Khi bạn đặt cookie, bạn đặt dữ liệu cookie thô và một số siêu dữ liệu. Siêu dữ liệu này bao gồm đường dẫn cho nơi cookie hợp lệ, thời gian hết hạn của cookie, v.v.Cookie "siêu dữ liệu" (hết hạn, đường dẫn, ...) có được chuyển đến máy chủ không?

Khi trình duyệt thực hiện yêu cầu, trình duyệt sẽ gửi chính xác những gì? Nó sẽ gửi toàn bộ cookie, với tất cả "siêu dữ liệu"? Hoặc chỉ dữ liệu thực tế của cookie, không có siêu dữ liệu?

+0

Bạn có thể thấy Fiddler (www.fiddler2.com) hữu ích để trả lời câu hỏi như thế này. – EricLaw

+0

Tôi chạy OS X, nhưng cảm ơn anyway :) –

+0

Bạn có thể sử dụng Wireshark trên OSX. –

Trả lời

8

Không chỉ giá trị của cookie là được trả lại trong các yêu cầu tiếp theo, siêu dữ liệu khác vẫn nằm trên máy khách.

Khi bạn xác định cookie trên máy chủ, tiêu đề Set-Cookie được tạo trong phản hồi mang tên, giá trị và siêu dữ liệu khác về cookie. Nhiều Cookie sẽ tạo nhiều tiêu đề Set-Cookie trong phản hồi.

Khi trình duyệt thực hiện các yêu cầu tiếp theo, trình duyệt sẽ kiểm tra "cơ sở dữ liệu" của các cookie có sẵn để xem cookie nào phù hợp với đường dẫn được yêu cầu. Sau đó, nó tạo một tiêu đề Cookie duy nhất trong yêu cầu chỉ mang theo một loạt các cặp tên/giá trị của các cookie đủ điều kiện.

Điều quan trọng là phải kiểm soát chặt chẽ số lượng cookie và kích thước dữ liệu nếu không bạn có thể thấy rằng trọng lượng dữ liệu cookie được gửi cho mỗi và mọi yêu cầu có thể mang tính quyết định đến hiệu suất. Điều này sẽ tồi tệ hơn nhiều nếu siêu dữ liệu được trả lại bằng cookie.

0

tác nhân người dùng sẽ truyền lại đường dẫn, tên miền và thuộc tính cổng nếu cookie được đặt dưới RFC2965 (thông qua tiêu đề Set-Cookie2) và nếu thuộc tính được chỉ định bởi máy chủ. một yêu cầu mẫu có thể chứa:

Cookie: $Version="1"; 
    name="val"; $Path="/site"; $Domain=".example.com"; $Port="81"; 
    name="val"; $Path="/site/dir"; $Domain=".example.com"; $Port="81" 

nếu cookie đã được chỉ định sử dụng bản gốc netscape Set-Cookie tiêu đề, không có thuộc tính sẽ được tái truyền đi. nếu nhiều cookie có cùng tên (nhưng các đường dẫn khác nhau) hợp lệ cho yêu cầu, tất cả cookie phù hợp sẽ được cung cấp. một ví dụ yêu cầu:

Cookie: name=val; name=val2 

đầy đủ spec là ở đây:

http://tools.ietf.org/html/rfc2965

các netscape đặc tả ban đầu là ở đây:

http://web.archive.org/web/20070805052634/http://wp.netscape.com/newsref/std/cookie_spec.html

+0

Set-Cookie là tiêu đề Response trả về định nghĩa của cookie, câu hỏi là về những gì được gửi lại cho máy chủ khi các yêu cầu khác xảy ra. – AnthonyWJones

+0

Tiêu đề 'Set-Cookie2' - đây có phải là tiêu đề chuẩn mà hầu hết các trình duyệt sẽ hiểu không? –

+0

tức là có, opera có, không chắc chắn về ff. máy chủ có thể sử dụng cookie kiểu cũ nếu máy khách không hỗ trợ. – jspcal

1

Máy chủ đặt cookie với tiêu đề "Đặt cookie". Điều này chứa siêu dữ liệu (đường dẫn và hết hạn), nếu được chỉ định. Khách hàng (trình duyệt) chỉ gửi chính cookie đó trong tiêu đề "Cookie".

Firebug là một công cụ hữu ích để Firefox xem tất cả các tiêu đề này. Các công cụ tương tự sẽ có sẵn cho các trình duyệt khác.

1

chỉ dữ liệu cookie được gửi đến máy chủ, siêu dữ liệu khác là cho trình duyệt để thực hiện một số hành động như hết hạn của cookie

Các vấn đề liên quan