2012-08-31 26 views
11

Do cấu hình sai của máy chủ web của chúng tôi, miền chính đã gửi chuyển hướng 302 đến một vị trí mới. Chúng tôi đã khắc phục vấn đề đó. Khi dọn sạch bộ nhớ cache của trình duyệt, mọi thứ hoạt động tốt ngay bây giờ.Chuyển hướng 302 được lưu trong trình duyệt trong bao lâu?

Đối với ứng dụng "bình thường" không làm trống bộ nhớ cache của mình: Chuyển hướng 302 được giữ trong trình duyệt trong bao lâu?

Trả lời

14

Hoàn toàn không được lưu vào bộ nhớ cache trừ khi có tiêu đề Cache-Control hoặc Expires được máy chủ web trả lại. Theo số RFC 2616, section 10.3.3 302 Found

Tài nguyên được yêu cầu tạm thời nằm trong một URI khác. Vì việc chuyển hướng có thể được thay đổi vào dịp, khách hàng NÊN tiếp tục sử dụng Request-URI cho các yêu cầu trong tương lai. Phản hồi này chỉ có thể lưu vào bộ nhớ cache nếu được chỉ định bởi trường tiêu đề Cache-Control hoặc Expires.

+2

Cảm ơn. Có vẻ như trình duyệt thử nghiệm mặc định của tôi (Chrome) vừa lừa tôi về vấn đề này: http://code.google.com/p/chromium/issues/detail?id=103458 (Chrome lưu trữ, những người khác không) –

+3

@OleAlbers Tôi sắp sửa chỉnh sửa câu trả lời của tôi với một lưu ý (trước khi internet của tôi chết) mặc dù RFC nói rằng khách hàng ** NÊN ** tiếp tục sử dụng URI gốc, rằng nó không có nghĩa là tất cả các trình duyệt sẽ cần phải được thực hiện như một từng trường hợp cụ thể. –

0

Tùy thuộc vào cài đặt bộ nhớ cache của trình duyệt của khách hàng cá nhân: IE có tùy chọn "KHÔNG BAO GIỜ" kiểm tra các trang mới, nó có tác dụng tương tự trên chuyển hướng.
Và cài đặt "Tự động" của AFAIR (mặc định?) Của IE không tốt hơn nhiều.

9

Tiêu chuẩn được tham chiếu bởi Jon Lin ở đây sử dụng "NÊN", là not as strong as "MUST" trong trò chơi RFC. Đây không chỉ là một sự phân biệt lý thuyết; CloudFlare, ví dụ, does cache redirects:

Nếu không có tiêu đề bộ nhớ cache được cung cấp (không Cache-Control hoặc Expires) và url được cache (.jpg, .css, .js vv) sau đó CloudFlare lưu trữ cả 301 và 302. Chúng tôi lưu bộ nhớ cache 301 trong vài giờ và 302 giây trong khoảng thời gian ngắn hơn (~ 20 phút) trong khoảng thời gian ngắn hơn là .

Vì vậy, bạn nên hoặc chắc chắn rằng bạn có thể xử lý nó hoặc sử dụng tiêu đề rõ ràng (ví dụ Cache-Control: private, no-cache) chỉ đạo các trình duyệt và trung gian chống lại bộ nhớ đệm nó.

+0

Yup, đây là vấn đề đối với tôi - không chỉ định 'Cache-Control' đã gây ra chuyển hướng được lưu trong bộ nhớ cache. Có thể xem xét chủ đề này để có cái nhìn toàn diện hơn về việc chỉ định tiêu đề không có bộ nhớ cache mặc dù: https://stackoverflow.com/questions/49547/how-to-control-web-page-caching-across-all-browsers –

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