Я пытаюсь определить, установило ли мое приложение файл cookie, который содержит «предупреждающее сообщение» для пользователя на следующей странице, где Javascript отображает его при обнаружении.
В моем vcl_fetch() мне нужно определить, появляется ли конкретное значение файла cookie "alert_message" где-либо в заголовке Set-Cookie (предположительно, в переменной VCL beresp.http.Set-Cookie). Если обнаружена, я не хочу кэшировать эту следующую страницу (поскольку Varnish по умолчанию удаляет заголовок Set-Cookie, что уничтожит предупреждающее сообщение до того, как оно вернется в браузер).
Итак, вот мой простой тест:
if(beresp.http.Set-Cookie ~ "alert_message") {
set req.http.no_cache = 1;
}
Как ни странно, он не может быть оценен как true.
Поэтому я бросаю переменную в заголовок сервера, чтобы посмотреть, как она выглядит:
set beresp.http.Server = " MyApp Varnish implementation - test reading set-cookie: "+beresp.http.Set-Cookie;
Но по какой-то причине это отображает только строку FIRST Set-Cookie в заголовках ответа.
Вот соответствующие заголовки ответа:
Server: MyApp Varnish implementation - test reading cookie: elstats_session=7d7279kjmsnkel31lre3s0vu24; expires=Wed, 10-Oct-2012 00:03:32 GMT; path=/; HttpOnly
Set-Cookie:app_session=7d7279kjmsnkel31lre3s0vu24; expires=Wed, 10-Oct-2012 00:03:32 GMT; path=/; HttpOnly
Set-Cookie:alert_message=Too+many+results.; expires=Tue, 09-Oct-2012 20:13:32 GMT; path=/; domain=.my.app.com
Set-Cookie:alert_key=flash_error; expires=Tue, 09-Oct-2012 20:13:32 GMT; path=/; domain=.my.app.com
Vary:Accept-Encoding
Как прочитать и запустить обнаружение строк во ВСЕХ строках заголовков Set-Cookie?