Вопрос

У меня есть базовая страница PHP, загружаемую через лак с одним ESI, включает в себя вызовы на сервер для установки файла cookie. Cookie установлен с доменным доступом и тому подобным, но когда вы называете через ESI, файл cookie никогда не устанавливается. Если вы получаете доступ к ESI, включите путь напрямую, файл cookie устанавливается без проблем. Я даже установил свою конфигурацию лака, чтобы никогда не кэшировать ничего, думая, что VCL может убить файл cookie.

Этот...

<esi:include src="/init.php?<?=http_build_query($_GET); ?>"></esi:include>

... включает это ...

<?php
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");

setcookie('superman', 'clark kent', 0, '/', '.whatever.com');

?>

Я новичок с лаком и ESI, поэтому я начинаю задаваться вопросом, является ли это известным ограничением (либо с ESI, либо с реализацией ESI VARNISH), но я не могу найти никакого обсуждения моей проблемы в Интернете.

Это было полезно?

Решение

Интересный вопрос, на который был задан - но не отвечал - раньше ( Настройка файлов cookie через ESI: включить, как? ) Я не думаю, что вы можете сделать это так. С помощью ESI-INCLUDE процессор ESI делает отдельный запрос и заменяет часть от тела, а не за заголовком. Чтобы ваше предпочтительное поведение работало правильно работать, спецификация ESI должна указать, как «объединить» все заголовки Set-Cookie.

См. Главу шестой спецификации ESI: http://www.w3.org/tr/esi-lang

Когда шаблон ESI обрабатывается, необходимо будет предпринять отдельный запрос для каждого включения. Реализации могут использовать заголовки исходного запроса (например, cookie, пользователь-агент и т. Д.) При этом. Кроме того, заголовки ответов из фрагментов (например, Set-Cookie, Server, Cache-Control, Last-Modified) могут быть проигнорированы и не должны влиять на собранную страницу.

Не могли бы вы попытаться преобразовать свой заголовок Set-Cookie в сценарию JavaScript Set-Cookie? Это может быть включено в тело ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top