Creative Commons License

Community

공지/뉴스
지식공유
질문/답변
자료실
자유로운 글
방명록

공유를 넘어 교류로... 제가 알리는 말씀 및 사이트 이용자들이 함게 참여하는 커뮤니케이션 공간입니다.

.

질문/답변

개발 중 막히셨나요?? 여기 먼저 경험한 개발자들의 답변을 부탁드려보세요~ 단, 질문의 내용은 되도록이면 아주(?) 상세히 해 주셔야 합니다

만료페이지 설정...

작성자 몬난아
작성일 2008-10-02 오전 2:16:44,    조회수 : 4347

오랜만에 또 와서 질문만 하내요 ^^

음 페이지 만료에 관한 질문을 하려고 합니다.

한용희님이 쓴글을 보고 하다보니까

public void Expire()
    {
        Response.AddHeader("Pramgma", "no-chache");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache);
        Response.CacheControl = "no-cache";
        Response.Expires = -1;

   }

머 대충 이런 형식으로 페이지 재방문시에 만료 페이지를 뜨개 햇는데 잘안되더라고요..

if(!ispostback)

{

//원래 로직

}

else

{

    Expire()

}

대충 이런식으로 햇었느데 동작이 잘안됬고..

그냥 Expire()만 동작 시켜봐도 페이지가 만료되었다는 메시지는 안뜨더라구요..

머 어떤 설정을 해줘야하는지..

∵Commented by 박종명 at 2008-10-02 오전 9:40:21  
안녕하세요! 오랜만이네요~
한용희님이 쓰신 글을 제가 읽어 보지 않아, 어떤 주제의 글인지 잘 모르겠군요..

질문에 작성하신 Expire() 코드가 하는 일은 HTTP 헤더값의 설정을 통해 해당 페이지를
즉시 만료시킨다는 의미입니다. 즉 페이지를 단 1초라도 캐싱하지 않고 재 방문 시 항상
새로고침된 페이지를 보여주도록 설정하는 것입니다.

보통 웹 사이트에 공통적으로 적용하기 위해서는,
'IIS웹사이트등록정보>HTTP헤더탭>컨텐트만료지정' 로 설정하기도 합니다.
물론 님처럼 페이지에 프로그래밍 방식으로 설정하는 것이구요...

그리고 포스트백이 발생할 경우에는 이러한 만료정책이 적용되지 않기 때문에
포스트백일 경우 명시적으로 Expire()해 준것 같군요...

정확히 구현하시고자 하는 방향을 제가 알 수 없어, 이정도 답변으로 마무리 하겠습니다 ^^
∵Commented by 몬난아 at 2008-10-03 오후 7:19:42  
음 정확한 그걸 말씀안드렸내요..
머 가령 예를 들어 현금 결제 서비스에서 특정 입력값을 입력하고 다음 페이지로 넘어간다음
뒤로가기를 햇을때
만료된 페이지 입니다 라는 메시지가 뜨자나요... 그런 기능을 말씀 드린것입니다.
∵Commented by 박종명 at 2008-10-06 오전 11:52:35  
님의 코드 처럼 캐시와 페이지 만료를 명시적으로 지정하면,
아래와 같은 구조에서 '만료된 페이지 입니다'라는 HTTP 경고 메세지를 볼 수 있습니다.
input.htm -> inputOK.asp -> End.asp

에서 inputOK.asp 페이지는 통상 폼값을 POST로 전달 받아서 End.asp 로 페이지 이동시키는 역할을 합니다. 이 경우 End.asp 에서 '뒤로가기' 버턴을 클릭하면 그와 같은 오류가 나옵니다.
이건 ASP.NET 에서도 동일한 구조입니다.(HTTP 요청,응답 구조가 동일하니깐요...)

주의할 사항은 ASP.NET의 포스트백 이벤트로 발생한 페이지 요청의 경우에는 만료가 성립되지 않습니다. 님의 코드처럼 작성하여도, 포스트백 한후 뒤로 버턴을 클릭하면 해당 내용이 다시 보여지며, 만료된 페이지가 적용되지 않습니다.

이 경우, 포스트백이후 다른 페이지로 이동시키십시요. 그러면 만료가 적용될 것입니다.
아니면, 위의 요청 구조 처럼, 포스트백이 아닌, 중간 처리 페이지를 따로 두셔도 됩니다.
∵Commented by 몬난아 at 2008-10-06 오후 4:02:36  
감사합니다 많은 참고 되었습니다 ^^
이름
비밀번호
홈페이지
RW <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요