Kích thước tối đa của khóa cookie của trình duyệt web là bao nhiêu?


300

Kích thước tối đa của khóa cookie của trình duyệt web là bao nhiêu?

Tôi biết kích thước tối đa của cookie là 4KB, nhưng khóa có bị giới hạn không?

Câu trả lời:


359

Giới hạn 4K bạn đọc là dành cho toàn bộ cookie, bao gồm tên, giá trị, ngày hết hạn, v.v. Nếu bạn muốn hỗ trợ hầu hết các trình duyệt, tôi khuyên bạn nên giữ tên dưới 4000 byte và kích thước cookie chung dưới 4093 byte.

Một điều cần cẩn thận: nếu tên quá lớn, bạn không thể xóa cookie (ít nhất là bằng JavaScript). Một cookie sẽ bị xóa bằng cách cập nhật nó và đặt nó hết hạn. Nếu tên quá lớn, giả sử 4090 byte, tôi thấy rằng tôi không thể đặt ngày hết hạn. Tôi chỉ quan tâm đến điều này vì sự quan tâm, không phải là tôi dự định có một cái tên lớn như vậy.

Để đọc thêm về nó, đây là " Giới hạn cookie trình duyệt " cho các trình duyệt phổ biến.


Trong khi về chủ đề, nếu bạn muốn hỗ trợ hầu hết các trình duyệt, thì không vượt quá 50 cookie cho mỗi tên miền4093 byte cho mỗi tên miền . Đó là, kích thước của tất cả các cookie không được vượt quá 4093 byte.

Điều này có nghĩa là bạn có thể có 1 cookie 4093 byte hoặc 2 cookie 2045 byte, v.v.


Tôi đã từng nói 4095 byte do IE7, tuy nhiên bây giờ Mobile Safari đi kèm với 4096 byte với chi phí 3 byte cho mỗi cookie, vì vậy tối đa 4093 byte.


14
giới hạn 4K đề cập đến tất cả các cookie trong một miền cụ thể - do đó, khi đạt đến giới hạn này, bạn có thể sẽ không thể tạo cookie mới.
ulkas

6
@ulkas: Tôi đã thêm nó vào bây giờ. Khi đạt đến giới hạn tôi đã quan sát thấy trong nhiều trình duyệt, bạn có thể tạo cookie mới, nhưng nó sẽ xóa một loạt các trình duyệt hiện có.
Iain

1
Lưu ý: RFC 2965 đã bị lỗi thời và được thay thế bởi RFC 6265. Phần giới hạn phần lớn không thay đổi (xem: tools.ietf.org/html/rfc6265#section-6.1 ), nhưng RFC 6265 hiện là nguồn chính tắc.
Jim OHalloran

107

Trên thực tế, RFC 2965, tài liệu xác định cách thức hoạt động của cookie, chỉ định rằng sẽ không có chiều dài tối đa của khóa hoặc kích thước giá trị của cookie và khuyến khích việc triển khai để hỗ trợ lớn tùy ý cookie . Tối đa mỗi trình duyệt sẽ nhất thiết phải khác nhau, vì vậy hãy tham khảo tài liệu trình duyệt riêng lẻ.

Xem phần 5.3, "Giới hạn thực hiện", trong RFC .


13
Như thường lệ, "spec" và "thế giới thực" dường như hoàn toàn khác nhau. Bởi vì cookie được gửi với MỌI yêu cầu http, nên thực sự có một điều tốt là có giới hạn.
BenSwayne

3
Đó là một thông số khá vô dụng nếu trong thực tế có giới hạn! Tuy nhiên, đây là câu trả lời "chính xác"!
Sự giới hạn có giới hạn

3
Tôi không hiểu tại sao các trình duyệt chọn không theo thông số này. Không có lý do tại sao tôi không thể đổ nhiều hơn 4KB (không nhiều) vào một cookie, khi những thứ như localStorage đã tồn tại.
William

1
Lưu ý: RFC 2965 đã bị lỗi thời và được thay thế bởi RFC 6265. Phần giới hạn phần lớn không thay đổi (xem: tools.ietf.org/html/rfc6265#section-6.1 ), nhưng RFC 6265 hiện là nguồn chính tắc.
Jim OHalloran

42

Sau khi tự mình kiểm tra một vài trình duyệt và sử dụng Trình duyệt ảnh, tôi đã biên soạn danh sách sau đây

nhập mô tả hình ảnh ở đây


3
Đã trả lời tại 18-02-2017 LOL, nhưng Phiên bản đó đã cũ hơn Ngày hết hạn.
Ajmal Praveen

3
@AjmalPraveen Đó là vì câu trả lời này được sao chép từ trang web này (mặc dù là phiên bản cũ hơn, như bạn đã nói). Một nguồn sẽ rất tốt, vì vậy những người quan tâm có thể xem một nguồn cập nhật hơn
Robby Groot

4
Bảng chính xác này được cập nhật và có sẵn tại browsercookielimits.squawky.net
gskema

39

Bạn cũng có thể sử dụng lưu trữ web nếu thông số kỹ thuật của ứng dụng cho phép bạn (nó có hỗ trợ cho IE8 +).

Nó có bộ nhớ 5M (hầu hết các trình duyệt) hoặc 10M (IE).

" Lưu trữ web (Ấn bản thứ hai) " là API và " Lưu trữ cục bộ HTML5 " là một khởi đầu nhanh chóng.


4
Ở đây có lẽ cần lưu ý rằng một lưu ý khi sử dụng lưu trữ web là, nếu không có cách giải quyết, dữ liệu được lưu trữ trong bộ lưu trữ web chỉ có thể được lưu trữ trên / truy cập từ HTTP HOẶC HTTPS, nhưng không được chia sẻ giữa chúng (ngay cả đối với cùng một trang).
ilasno

2
@ilasno Afaik giới hạn tương tự tồn tại đối với cookie truyền thống.
Steve Midgley

Thông báo quan trọng nhất là thay vì lưu trữ web, lưu trữ phiên và lưu trữ cục bộ chỉ có thể truy cập từ trình duyệt, không phải máy chủ. Đó chắc chắn là điều cần xem xét khi lựa chọn giữa bất kỳ cái nào và cookie, có thể đọc được trên cả trình duyệt và máy chủ.
Vadorequest

16

Khóa cookie (được sử dụng để xác định phiên) và cookie là cùng một thứ được sử dụng theo những cách khác nhau. Vì vậy, giới hạn sẽ là như nhau. Theo Microsoft 4096 byte.

MSDN

cookie thường được giới hạn ở 4096 byte và bạn không thể lưu trữ hơn 20 cookie trên mỗi trang. Bằng cách sử dụng một cookie với các khóa con, bạn sử dụng ít hơn trong số 20 cookie mà trang web của bạn được phân bổ. Ngoài ra, một cookie duy nhất chiếm khoảng 50 ký tự cho chi phí hoạt động (thông tin hết hạn, v.v.), cộng với độ dài của giá trị mà bạn lưu trữ trong đó, tất cả đều được tính vào giới hạn 4096 byte. Nếu bạn lưu trữ năm khóa con thay vì năm cookie riêng biệt, bạn sẽ lưu chi phí chung của các cookie riêng biệt và có thể tiết kiệm khoảng 200 byte.


7
Ngẫu nhiên, chỉ vì bạn có khoảng 4KB dung lượng lưu trữ cookie của trình duyệt để chơi với bạn nên xem xét nghiêm túc xem đó có phải là một ý tưởng tốt hay không.
NotMe

Bạn có thể xác nhận nếu mỗi tên miền / trang web, số lượng cookie không thể vượt quá 20 không? hoặc nó tăng lên bây giờ?
Đột biến

2

Không hoàn toàn là một câu trả lời trực tiếp cho câu hỏi ban đầu, nhưng có liên quan cho người tò mò nhanh chóng cố gắng hiểu trực quan kế hoạch lưu trữ thông tin cookie của họ mà không thực hiện thuật toán giới hạn phức tạp, chuỗi này là 4096 byte ký tự ASCII:

"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmn"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.