2010-06-29 22 views
6

Tôi gặp sự cố này với Safari 5 (thực tế nó đã phổ biến từ ít nhất 4.0.5), có vẻ như nó không đặt cookie đúng cách. Trang web hoạt động hoàn toàn tốt cho Firefox, IE và Chrome.Safari 5 không gửi tất cả cookie trở lại máy chủ

Tuy nhiên, tôi có thể xác minh rằng cookie đang được đặt chính xác bằng cách xem cookie của Plist mà nó sử dụng. Trên Windows 7 nó được lưu trữ ở đây: C: \ Users \\ AppData \ Roaming \ Apple Computer \ Safari \ Cookies \ Cookies.plist

Bây giờ trang web mà tôi đang sử dụng sử dụng cookie khá rộng rãi và được lưu trữ trên các miền khác nhau.

Ví dụ: trang web là www.foo.com. Cookie đăng nhập được đặt thành tên miền .foo.com. Ngoài ra, các cookie khác được lưu trữ vào miền www.foo.com, a.foo.com, b.foo.com, v.v.

Safari dường như bị nhầm lẫn khi truy cập www.foo.com và "quên "để gửi tất cả các cookie cần thiết (www.foo.com, .foo.com).

Tôi không chắc chắn đây có phải là lỗi bên cạnh tôi hay không (các ký tự không hợp lệ trong cookie) hoặc nếu đây là lỗi với Safari. Tôi muốn biết liệu có ai đã bắt gặp điều này và đã tìm thấy một số

Cảm ơn!

Chỉnh sửa: Một cookie mà tôi quan tâm là khá lớn, có độ dài nhỏ hơn 4k. Nó chứa thông tin được mã hóa và các ký tự chứa thông tin được mã hóa và các ký tự bao gồm chữ và số và/+ _ =

Điều lạ lùng là tùy thuộc vào miền mà cookie được đặt thành, cookie hoạt động tốt. Tuy nhiên, khi người dùng đăng nhập, một cookie khác được thêm vào và Safari dường như bỏ qua bước đầu tiên. Safari gửi cookie đăng nhập tốt và nó bao gồm chữ và số cùng với [] _ ​​\

Suy nghĩ ban đầu của tôi là nó có thể là xung đột miền. Cookie đầu tiên được đặt thành www.foo.com trong khi cookie đăng nhập đã được đặt thành .foo.com. Tuy nhiên, tôi đã thử nghiệm lý thuyết này, đặt cả hai thành .foo.com và vấn đề vẫn còn.

+0

Tôi gặp sự cố với các ký tự không hợp lệ trong cookie gây ra tất cả các loại sự cố. Tôi chắc chắn sẽ kiểm tra điều đó. – dmazzoni

Trả lời

11

Hãy xem giới hạn kích thước trình duyệt here. Safari 5 có giới hạn 4kb cho mỗi yêu cầu. Do đó, nếu tổng kích thước của tất cả cookie cho tên miền (bao gồm cả tên miền ký tự đại diện được liên kết) vượt quá 4k, bạn sẽ bắt đầu mất cookie. Tôi tin rằng logic là cookie lâu đời nhất sẽ được hy sinh trước, cho đến khi tổng kích thước tiêu đề cookie dưới 4k.

Hiện tại chúng tôi đang gặp sự cố với vấn đề này, nhưng cũng đã xác định một trường hợp khác trong đó cookie bị mất, mặc dù chúng tôi chưa hiểu tại sao lại xảy ra trường hợp này.

Với kích thước lớn của một cookie duy nhất của bạn, có khả năng yêu cầu sau sẽ thêm cookie mới, chạm tổng kích thước vượt quá giới hạn.

+2

Điều này phải được đánh dấu là câu trả lời. –

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