2013-11-21 63 views
0

我正在編寫一個Java Web服務,用於Web優化的培訓目的。我的Web服務發送365天如何避免瀏覽器請求使用Expires

到期的響應
@Path("cache2") 
public class WsCache { 
    @GET 
     @Produces("application/json") 
    public Response expires(){ 
     System.out.println("Expires in 365 days"); 
     String later = getDaysAfterHttpDate(365); 
     return Response.ok("{Hello:hello}").header("Expires",later).build(); 
    } 
} 

的問題是,Chrome或Firefox使得它要求使用的Cache-Control:

GET /fora-comments-ejb/api/cache2 HTTP/1.1 
Host: localhost:8080 
Connection: keep-alive 
Cache-Control: max-age=0 
Accept: text/html... 
User-Agent: Mozilla/5.0 ... 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: fr-FR,fr;... 

由於max-age覆蓋Expires任何價值,是有一種說firefox/Chrome的方式不使用緩存控制的第二個請求?

回答

0

往往我發現稍後answer on Stack.您需要一個真實鏈接到緩存,或者瀏覽器發送max-cache = 0,在我看來這是一個好主意。

我不得不做出與鏈接的HTML文件:

<a href="fora-comments-ejb/api/cache">Fetch some JSON<a/> 

和它的作品

enter image description here