Генерація нового URL

Припустимо що запитуваний ресурс має наступний url: test.html? Id = 7. Як
видно з url "а йому передається один параметр. Додамо, наприклад, за допомогою
JavaScript, в url ще один параметр, а його значенням зробимо випадкове число. У
результаті url буде виглядати наступним чином:
test.html? id = 7 & rnd = 0.6700820127538827. Випадковий параметр буде щоразу
генеруватися заново. Нижче наводиться лістинг, що демонструє цей підхід:

<html>
<head>
<title> </ title>
<Meta http-equiv = "Content-Type" content = "text / html;
charset=windows-1251">
</head>
<body>
<script language=”javascript”>
document.write ("<a href="1.html?id=7&rnd=" + Math.random() +"">");
</script>
тестова посилання </ a>
</body>
</html>

Кожного разу результат такого запиту буде кешуватися, але так як
кешування проводиться по всьому url, то кожен раз буде виходити новий url
і браузер буде змушений запитувати з сервера ресурс, так як url двох запитів
не будуть збігатися в точності.

Поля заголовків


Управляти кешуванням можна так само з боку сервера. Для цього ресурс,
відправляється браузеру, супроводжується полями заголовка. Детальний опис полів
заголовка може бути знайдено в стандарті Rfc 2068, який описує протокол
HTTP 1.1.

Поле заголовка Expires


Значенням даного заголовка є дата, після якої вміст ресурсу
застаріє. Якщо користувач після цієї дати звернутися до ресурсу, браузер повинен
запросити ресурс у сервера, а не з локального кешу.

Якщо поле> Expires <містить дату, що пройшла, по відношенню до поточної,
то при наступному зверненні до ресурсу браузер буде змушений знову звернутися до
сервера. Це відбудеться внаслідок того, що або документ не буде занесений до
кеш – як уже застарілий, або при зверненні до кешу браузер визначить, що
документ вже застарів. Наступний лістинг на PHP демонструє використання
заголовка Expires:

header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

Поле заголовка Last-Modified


Значенням даного заголовка є дата останнього оновлення ресурсу.
Більшість сучасних браузерів використовують наступний алгоритм, якщо ресурс вже
знаходиться в локальному кеші:


Якщо ресурс, розташований на сервері, містить в даному полі поточну дату,
то браузер буде щоразу запитувати ресурс з сервера, а не з локального
кеша. Наступний лістинг демонструє використання поля заголовка
Last-Modified:

header ("Last-Modified:". gmdate ("D, d MYH: i: s"). "GMT");

Поля заголовка Cache-Control і Pragma

І, нарешті, поля заголовка, безпосередньо відповідають за кешування
ресурсу. Поле <Pragma> було визначено в стандарті Rfc 1945, що описує
протокол HTTP 1.0. Дане поле вважається застарілим, але в деяких випадках
доводиться використовувати саме його. Зокрема деякі proxy-сервера
неправильно обробляють запити до постійно змінюваних ресурсів, якщо разом
з ресурсом не передається дане поле заголовка.

Друге поле визначено в стандарті Rfc 2068, який описує протокол HTTP
1.1. Дане поле заголовка дозволяє заборонити кешування, і кожен раз
запитувати ресурс з сервера. Наступний лістинг демонструє використання
полів заголовка Cache-Control і Pragma для заборони кешування:

header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*