Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сетевые протоколы в инфокоммуникациях (ПЗ).docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3.51 Mб
Скачать

Что может быть записано в память кэша?

Целью директивы nostore (не запоминать) является предотвращение ненамеренного распространения или записи конфиденциальной информации (например, на backup ленты). Директива nostore применяется для всего сообщения и может быть послана как в отклике, так и в запросе. При посылке в запросе кэш не должен запоминать какую-либо часть этого запроса или присланного в ответ отклика. При посылке в отклике кэш не должен запоминать какую-либо часть отклика или запроса, его вызвавшего. Эта директива действует как для индивидуальных кэшей, так и для кэшей коллективного пользования. "Не должно запоминаться" в данном контексте означает, что кэш не должен заносить отклик в долговременную память и должен сделать все от него зависящее для того, чтобы удалить эту информацию из временной памяти после переадресации этих данных.

Даже когда эта директива ассоциирована с откликом, пользователи могут непосредственно запомнить такой отклик вне системы кэширования (например, с помощью диалога Save As). Буферы предыстории могут запоминать такие отклики как часть своей нормальной работы.

Цель этой директивы — обеспечение выполнения определенных требований пользователей и разработчиков, тех, кто связан с проблемами случайного раскрытия информации за счет непредвиденного доступа к структуре данных кэша. При использовании этой директивы можно в некоторых случаях улучшить конфиденциальность, но следует учитывать, что не существует какого-либо надежного механизма для обеспечения конфиденциальности. В частности, некоторые кэши могут не распознавать или не выполнять эту директиву, а коммуникационные сети могут прослушиваться.

Модификации базового механизма контроля времени жизни

Время пригодности объекта (entity expiration time) может быть специфицировано исходным сервером с помощью заголовка Expires. Другой возможностью является применение директивы maxage в отклике.

Если отклик включает в себя как заголовок Expires, так и директиву maxage, более высокий приоритет имеет директива maxage, даже если заголовок Expires накладывает более жесткие ограничения. Это правило позволяет исходному серверу обеспечить для заданного отклика большее время жизни в случае объектов кэша HTTP/1.1 (или более поздней версии), чем в HTTP/1.0. Это может быть полезным, если кэш HTTP/1.0 некорректно вычисляет возраст объекта или его время пригодности, например, изза несинхронности часов.

Замечание. Большинство старых кэшей не поддерживают применение директив управления кэшем. Исходный сервер, желающий применить подобную директиву, которая ограничивает, но не запрещает кэширование в системах, следующих регламентациям HTTP/1.1, может использовать то, что директива maxage переписывает значение, определенное Expires.

Другие директивы позволяют агенту пользователя модифицировать механизм контроля времени жизни объектов. Эти директивы могут быть специфицированы в запросе maxage.

Этот запрос указывает, что клиент желает воспринять отклик, чей возраст не больше времени, заданного в секундах. Если только не включена также директива maxstale, клиент не воспримет устаревший отклик.

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

Запрос maxstale указывает, что клиент желает воспринять отклик, время жизни которого истекло. Если maxstaleприсвоено конкретное значение, тогда клиент хочет получить отклик, время жизни которого не ранее, чем заданное число секунд тому назад. Если значения maxstale в директиве не указано, то клиент готов воспринять отклики любого возраста.

Если кэш присылает устаревший отклик, изза наличия в запросе директивы maxstale либо потому, что кэш сконфигурирован таким образом, что переписывает время жизни откликов, то кэш должен присоединить заголовок предупреждения к отклику, используя Warning 10 (Response is stale — отклик устарел).