2012-03-02 3 views
0

내가 HTML 페이지가 있고, 다음과 같은 몇 가지 메타 태그를 추가 :이 HTML 페이지가 클라이언트 브라우저에 캐시 한 후크롬에 상태 코드 304가 반환 된 요청을 피하는 방법은 무엇입니까?

<meta http-equiv="Cache-Control" Content="public" /> 
<meta http-equiv="Expires" Content="Mon, 08 Jun 2013 03:37:26 GMT" /> 

내 서버, 바람둥이, 난 내 Tomcat을 종료합니다.

그리고 다른 브라우저에서이 HTML 페이지에 액세스하려고했습니다.

IE는이 페이지에 액세스 할 수 있지만 Chrome은 실패합니다.

그리고 나서 tomcat을 다시 시작하고 Chrome과 IE에서 테스트했습니다.

Chrome에서 304 코드가 반환 된 요청을 계속 보낸 것으로 나타 났지만 IE는이 요청을 보내지 않았습니다.

Chrome에서이 요청을 피하는 방법은 무엇인가요?

답변

0

사실 나는 이것이 오류라고 생각하지 않습니다. 3xx은 리디렉션을 나타냅니다. 실제 오류는 4xx (클라이언트 오류) 및 5xx (서버 오류)입니다.

고객이 304 Not Modified을 얻는 경우 문제의 리소스를 자체 캐시에서 표시하는 것은 고객의 책임입니다. 일반적으로 프록시는 이에 대해 걱정할 필요가 없습니다. 그것은 단지 메신저 일뿐입니다.

catch (WebException ex) 
{ 


    if (ex.Status == WebExceptionStatus.ProtocolError) 
    { 
     int statusCode = (int) ((HttpWebResponse) ex.Response).StatusCode; 
     listenerContext.Response.StatusCode = statusCode; 
     listenerContext.Response.StatusDescription = ex.Message; 
     log("WARNING", uri, "WebException/ProtocolError: " + ex.GetType() + " - " + ex.Message); 
    } 
    else 
    { 
     log("ERROR", uri, "WebException - " + ex.GetType() + " - " + ex.Message); 

    } 

    listenerContext.Response.Close(); 
} 
+0

나는 클라이언트가 순수한 HTML 페이지를 영원히 캐싱하고, 서버가 실행 중이거나 종료 된 상태가 아니더라도 서버에서 요청하지 않으려는 client.i의 해결책을 찾고 있습니다. –

+0

그런 경우 http://www.w3.org/TR/offline-webapps/와 같은 것을 볼 수 있습니다. – Dre

관련 문제