Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 1, 2008 11:33:25

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

Cache и приват-data

Здравствуйте .

В описании по кэшу в офф документации сказано (как я понял) что использование декоратора @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)
Спасибо

ps
правильно ли я понял что кэш можно использовать для помещения туда переменных от разных клиентов под одним и тем же ключом если эти данные обернуты @cache_control(private=True)?

Отредактировано (Ноя. 1, 2008 11:44:09)

Офлайн

#2 Ноя. 1, 2008 12:02:23

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Cache и приват-data

Ты путаешь кеш браузера (за который как раз и отвечает cache_control) и серверный кеш самой джанги. В общем, ты не так используешь.



Офлайн

#3 Ноя. 1, 2008 13:10:03

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

Cache и приват-data

Daevaorn
Ты путаешь кеш браузера (за который как раз и отвечает cache_control) и серверный кеш самой джанги. В общем, ты не так используешь.
1) то есть я правильно понял что django.core.cache import cache – это серверный кеш Джанги? И команда cache.set('my_key', ‘hello, world!!’, 3000) помещает именно туда данные в незащищенном виде?

2) а django.views.decorators.cache import cache_control –это кэш браузера

то есть если @cache_control(private=True) отвечает за кэш браузера то он должен помещать туда зашифрованные данные и считывать оттуда–предварительно расшифровав,? Чего я не наблюдаю. В кэш попадает страница с открытым текстом. Я не пойму назначения тогда этого декоратора смотрел исходник а документации написано что :

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.

The solution is to indicate a page's cache should be “private.” To do this in Django, use the cache_control view decorator.

Офлайн

#4 Ноя. 1, 2008 19:14:50

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Cache и приват-data

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.



Офлайн

#5 Ноя. 1, 2008 22:46:25

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version