Session-ID и Browser-Caching => Достаточно ли интеллектуален браузер для удаления SessID? - PullRequest
2 голосов
/ 10 ноября 2009

У меня большой вопрос: см. Пример ссылки ниже. В настоящее время мое приложение добавляет ко всем «ресурсам / ссылкам» идентификатор сеанса. Я более или менее случайно наткнулся на это, заглянув в кэш Firefox:

http://localhost:8080/jquery-ui-1.7.2.custom.css;jsessionid=A8483FBF3BB6DDA499E06210BE0D612C

Мой большой вопрос: приведёт ли URL-адрес, подобный приведенному выше, к тому, что любой заголовок кэширования (я использую Cache-Control с несколькими годами) станет более или менее бесполезным, так как идентификатор сеанса сделает каждый запрос уникальным

(==> Я имею в виду, что новый идентификатор сеанса назначается через 30 минут. Кэширование, скорее всего, будет действовать только в течение этого периода. После этого периода будет создан новый идентификатор сеанса, косвенно аннулирующий все кэшированное содержимое на стороне клиента, у которого есть SessionID в своем URL-адресе = URL-адрес изменяется, поскольку теперь у него есть новый sessionID.)

=> Являются ли браузеры настолько интеллектуальными, чтобы обнаружить, что ресурс для кеширования:

http://localhost:8080/jquery-ui-1.7.2.custom.css

а не:

http://localhost:8080/jquery-ui-1.7.2.custom.css;jsessionid=A8483FBF3BB6DDA499E06210BE0D612C

Или сессионный идентификатор в URL приведет к тому, что кэширование более или менее отключено в браузере?

Большое спасибо! Январе

Ответы [ 2 ]

3 голосов
/ 10 ноября 2009

Вы правы - браузер недостаточно умен, а изменяющийся URL довольно эффективно сведет на нет кэширование.

Почему у вас там идентификатор сессии? Если ресурс не зависит от сеанса, удалите идентификатор сеанса из URL-адреса, и это решит вашу проблему. Если ресурс зависит от сеанса, то у вас уже есть все необходимое, поскольку один сеанс не должен использовать ресурс из другого сеанса.

3 голосов
/ 10 ноября 2009

Вопрос не в том, достаточно ли умны браузеры. Стандарт W3 для HTTP гласит, что разные URL-адреса должны кэшироваться отдельно. Таким образом, браузеры верны, наблюдая полный URL, включая аргументы GET, такие как идентификатор сеанса, в своем кэшировании.

Вы не должны добавлять идентификатор сеанса в что-либо , которое является статическим (например, таблицу стилей).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...