메뉴 닫기

웹서버별 만료된 페이지 해결방안(POST)

test

웹페이지를 사용 하다 보면 이러한 경우를 보실 겁니다. 

 

뒤로 가기 자바스크립트  history.back() 의 함수를 쓸 경우 인데 이러한 문제가 나타나는 이유는 다음과 같습니다.

 

post 방식으로  웹서버가 호출 되는 경우 발생하는 호출에 대한 보장이 없기 때문에 발생합니다.  

 

글을 작성하고  뒤로가기를  클릭했을  경우  같은  내용의  게시물이  또  등록이  되겠지요.
이런 경우들을  방지하기  위해서  만료된  페이지라는  확인  창을  브라우저에서  띄우게  됩니다.  

 

여러가지 해결 방법이 있으니 경우에 따라서 사용 하시면 되겠습니다.

 

1.GET 방식을 사용합니다. 

form 값을 서버에 넘길때  POST를 사용하지 않고 GET 방식을 사용합니다.

경우에 따라서 사용 못할 수도 있지만  제일 간단하다고 할 수 있겠습니다. 

 

2.웹서버의 종류와 상관 없이 자바스크립트를 사용하여 해결합니다. 

<script>
location.reaplce( \”URL\” );
</script>

브라우져에서 지원을 안할수도 있고  자바스크립트를 신용 할 수 없는 부분도 있기 때문에 

서버단에서 하는 부분을 추천합니다.

 

3. php

php 의 경우 header(‘Location: http://www.example.com/’);  이런식으로  작성하여 줍니다. 

 

4.  HTML , 웹서버별 대처 방법

HTML인 경우
<META http-equiv=”Expires” content=”-1″>
<META http-equiv=”Pragma” content=”no-cache”>
<META http-equiv=”Cache-Control” content=”No-Cache”>

ASP인 경우  
<%  
Response.Expires = 0  
Response.AddHeader “Pragma”,”no-cache”  
Response.AddHeader “Cache-Control”,”no-cache,must-revalidate”  
%>  

JSP인 경우  
<%  
response.setHeader(“Cache-Control”,”no-store”);  
response.setHeader(“Pragma”,”no-cache”);  
response.setDateHeader(“Expires”,0);  
if (request.getProtocol().equals(“HTTP/1.1”))
        response.setHeader(“Cache-Control”, “no-cache”);
%>  

PHP인 경우  
<?  
header(“Pragma: no-cache”);  
header(“Cache-Control: no-cache,must-revalidate”);  
?>

 

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x