Có tiêu đề Độ tuổi tối đa cho phép chỉ định thời gian hết hạn của cookie. Thật không may là Internet Explorer 6, 7, 8 và có lẽ sau đó không hỗ trợ Max-Age và yêu cầu tiêu đề hết hạn với một ngày tuyệt đối trong GMT.Set-Cookie: Hết hạn thuộc tính, độ lệch đồng hồ và sự cố Internet Explorer
Nó không phải là không phổ biến rằng giờ GMT và TZ cài đặt trên khách hàng cụ thể có thể không chính xác. Hãy xem xét người dùng đã không xác định múi giờ của mình một cách chính xác và điều chỉnh đồng hồ theo cách thủ công.
Hơn thế nữa, đôi khi có thể có một đồng hồ đáng kể trong vài phút mà người dùng không biết về chúng.
Trong trường hợp này, giờ GMT của nó có thể được chuyển sang vài giờ. Hiệu quả nó sẽ ngăn chặn từ một máy chủ để đặt bất kỳ cookie nào yêu cầu thời gian hết hạn ngắn. Xem xét một cookie có độ tuổi tối đa 10 phút sẽ không bao giờ được đặt nếu TZ không chính xác.
ý tưởng gốc về cách giải quyết vấn đề (mà không hoạt động hoặc có vấn đề):
- Tất nhiên là tốt nhất là sử dụng Max-Age hoặc thậm chí xác định cả hai như tất cả các trình duyệt sẽ bỏ qua "Hết Hạn "một phần - nhưng nó không hoạt động trong IE
- Một cách khác tôi nghĩ là đặt ngày: tiêu đề hy vọng IE sẽ biết để tính toán sự khác biệt để làm việc xung quanh skew đồng hồ ... Nhưng nó không giúp IE.
- Lấy thời gian từ khách hàng theo yêu cầu (sử dụng JavaScript) và tính chênh lệch đồng hồ và sau đó điều chỉnh hết hạn tiêu đề nếu cần. Tuy nhiên nó đòi hỏi thao tác dữ liệu phức tạp bao gồm một số cách để gửi thời gian đến máy chủ.
Câu hỏi:
- tốt nhất và thực tế phổ biến để xử lý Thời gian hết hạn cho cookie trong IE là gì?
- Làm thế nào để bạn làm điều đó trong các ứng dụng của bạn
_ “Xem xét một cookie có độ tuổi tối đa là 10 phút” _ - khó giải quyết được trong các điều kiện được mô tả. Tôi muốn lưu trữ thời gian _server-side_ cho đến khi giá trị đó cũng được xem là hợp lệ vào cookie (và nó được đặt cho khung thời gian dài hơn) - sau đó bạn có thể kiểm tra phía máy chủ khi nhận lại cookie đó nếu bạn vẫn muốn sử dụng giá trị của nó cho một cái gì đó hay không… – CBroe
Tôi hiểu rằng 10 phút là một thời gian nhỏ. Nhưng trong mọi trường hợp, ngay cả khi bạn cần 30 phút nó vẫn có thể là một vấn đề lớn. – Artyom
Nói chung, chúng tôi hoặc đặt cookie phiên, chỉ kéo dài cho đến khi trình duyệt thoát hoặc chúng tôi đặt cookie có ngày hết hạn ngày hoặc năm trong tương lai, vì vậy vấn đề múi giờ không phải là vấn đề. –