Каково окончательное решение для предотвращения кэширования данных http? Мы можем модифицировать клиента, а также сервер, поэтому я думаю, что мы можем разделить задачу между клиентом и сервером.Избегайте кэширования HTTP-ответов
Client может добавлять к каждому запросу случайный параметр http://URL/path?rand=6372637263
- У меня такое ощущение, что использование только таким образом он не работает на 100% - может быть есть некоторые интеллектуальные прокси, которые могут обнаружить, что ... С другой стороны, я подумайте, что если URL-адрес отличается от предыдущего, прокси-сервер не может просто решить, чтобы отправить обратно некоторый кешированный ответ.
На сервере может контролировать кучу HTTP заголовков:
Expires: Tue, 03 Jul 2001 06:00:00 GMT
Last-Modified: {now} GMT
Cache-Control: no-store, no-cache, must-revalidate, max-age=0
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Все комментарии к этому, что это лучший подход?
Я замечаю, что люди все еще смотрят на этот ответ.Как и все в Интернете, он немного устарел - pushstate позволяет использовать сторонние клиенты с URL-адресами - но проявляйте особую осторожность! Посмотрите также на mod_pagespeed. Это позволяет много переписывать URL-адреса и слияние содержимого на сервере. Помимо этого, остальная часть контента в моем ответе все еще сохраняется. – symcbean
вы можете объяснить 'Истекает: Вт, 03 июл 2001 06:00:00 GMT' - должно ли это быть« Истекает: Чт, 01 января 1970 года 00:00:00 GMT'? – lf215
@ If215: в любое время в прошлом * должен * предотвратить кеширование. Однако, когда вы начинаете говорить с большим количеством компьютеров, вы найдете людей с плоскими батареями часов, неправильно настроенными часовыми поясами и другими странностями. – symcbean