Форум сайта python.su
Здравствуйте .
В описании по кэшу в офф документации сказано (как я понял) что использование декоратора @cache_control(private=True) с опцией private=True защищает данные помещенные в публичный кэш от просмотра другими клиентами. Но когда я пробую данный пример у себя то есть беру два клента (опера и мозилла) отключаю там все кэши в одном клиенте запускаю l0 которая помещает в кзш строку а во втором клиенте ,как я понял, при запуске l1 не должно считыватся значение ‘my_key’ но это происходит.
Веро ли такое поведение если верно то в чем заключается принцип этого “защищенного” кэша?
from django.core.cache import cache
from django.views.decorators.cache import cache_control
@cache_control(private=True)
def l0(request):
cache.set('my_key', 'hello, world!!', 3000)
return HttpResponse('')
@cache_control(private=True)
def l1(request):
a = cache.get('my_key')
return HttpResponse(a)
Отредактировано (Ноя. 1, 2008 11:44:09)
Офлайн
Ты путаешь кеш браузера (за который как раз и отвечает cache_control) и серверный кеш самой джанги. В общем, ты не так используешь.
Офлайн
Daevaorn1) то есть я правильно понял что django.core.cache import cache – это серверный кеш Джанги? И команда cache.set('my_key', ‘hello, world!!’, 3000) помещает именно туда данные в незащищенном виде?
Ты путаешь кеш браузера (за который как раз и отвечает cache_control) и серверный кеш самой джанги. В общем, ты не так используешь.
Офлайн
romankrvНет. С чего ты это взял?
то есть если @cache_control(private=True) отвечает за кэш браузера то он должен помещать туда зашифрованные данные и считывать оттуда–предварительно расшифровав,?
romankrvты сам цитату привел и сам же её не понял?
Я не пойму назначения тогда этого декоратора смотрел исходник а документации написано что :
romankrv
A user usually faces two kinds of caches: his own browser cache (a private cache) and his provider's cache (a public cache). A public cache is used by multiple users and controlled by someone else. This poses problems with sensitive data: You don't want, say, your banking-account number stored in a public cache. So Web applications need a way to tell caches which data is private and which is public.
Офлайн
Да немного разобрался
по документации http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
Офлайн