2015-06-13 64 views
0

新的清漆,不是新的HTTP。道歉,如果這是新手/明顯的領土,但谷歌搜索沒有透露答案。Varnish ESI請求 - 發送了什麼Cookie?

當清漆,使一個esi include url

  1. 什麼餅乾(和其他請求信息)的請求,它在默認情況下

  2. 發送沿經vcl配置文件,該編程控制。

這就是說 - 我的理解是,esi包含在清漆中的目的是允許有狀態信息填充到從緩存中提取的頁面中。這種狀態信息(大概)是由應用程序使用會話標識獲取的,該標識通常通過cookie中發送的數據實現。

什麼是我不明白是,如果清漆只是沿着

  • 的原始請求的Cookie信息傳遞
  • 應用程序的響應餅乾
  • 別的東西

而且不論什麼清漆會默認通過,這可以在清漆vcl文件中進行控制嗎?

(A PHP應用程序,如果它事項)

回答

2

只是做了一些周圍挖掘,似乎餅乾被傳遞給ESI請求。

ESI請求也將被清漆處理。這允許您爲特定的ESI對象再次處理所有請求標頭和緩存行爲。

http://blog.lavoie.sl/2013/08/varnish-esi-and-cookies.html我找到了下面的例子。這應該允許您爲特定的esi請求取消設置/或保留cookie。

sub vcl_recv { 
    if (req.esi_level > 0) { 
    # Backend may want to treat this request differently 
    set req.http.X-Esi-Level = req.esi_level; 

    if (req.url !~ "esi-cookies=1") { 
     unset req.http.cookie; 
    } 
    } else { 
    unset req.http.X-Esi-Level; # remove for security 
    } 
} 

sub vcl_fetch { 
    # Activate Edge Side Includes, but only if X-Esi header is present 
    if (beresp.http.X-Esi) { 
    set beresp.do_esi = true; 
    unset beresp.http.X-Esi; # remove header 
    } 
}