'WEB'에 해당되는 글 66건

  1. 2012.04.26 멱등 또는 더블클릭 방지
2012. 4. 26. 10:26

멱등 또는 더블클릭 방지

GET요청과 POST요청의 의도한 바는 다음과 같다.

 

GET 요청은 멱등(idempotent)이 되도록 의도했다.

서버의 상태를 변경하는 다른 작업을 하지 않는다고 가정하면, 동일한 GET 연산을 반복해서 적용해도

정확하게 동일한 결과를 반환한다.

 

POST 요청은 멱등이 아니어도 된다.

즉 서버로 전송한 데이터는 애플리케이션의 상태를 변경한다.

예를 들어 데이터베이스에 레코드를 추가 혹은 수정하거나 서버에서 정보를 삭제하는 것이 이에 해당한다.

 

따라서 GET 요청은 이름이 의미하는 대로 요청의 목적이 단지 데이터를 얻으려는 경우에만 사용한다.

GET을 사용할 때도 데이터를 서버에 전송할 수 있다.

만일 색상 정보를 가져오려면 스타일 번호로 식별한다.

그러나 서버에 변경을 목적으로 데이터를 전송한다면 POST를 사용해야 한다.

 

주의)

조금 더 이론적으로 얘기하면, 브라우저는 사용된 HTTP method에 따라 캐싱을 결정한다.

GET 요청은 캐싱하기에 매우 적합한 대상이다.

올바른 HTTP method를 사용하면 요청의 의도와 상관없이 브라우저나 서버가 다르게 처리하지

않음을 보장한다. 이러한 내용은 RESTful 이론 영역의 일부를 약간 경험한 것이다.

RESTful 이론에서는 PUT DELETE 같은 다른 HTTP 메소드도 활용한다.

-----------------------------------------------------------------------------------------------

보내기 버튼 글릭 시..

글 등록이 완전히 되기 전까지 보내기 버튼을

disable 시키고 싶습니다.

<input type="submit" value="연습" onsubmit="this.disabled=true;">


아래 표에서 보면 겟 방식은 멱등이라고 햇습니다.

잘 이해가 가지 안습니다.

결재하기를 여러번 누루면 당연이 여러번 돼야 하는거 아니가요?

제가 겟방식과 포스트 방식으로 해?f는대

여러번 누루면 다 여러번 인서트가 돼던대요..

어떻게 코딩 하느냐에 따라서 멱등이 될수도있을거 같던대.. 여기서 말한 멱등은 정확히 멀 의미 하는지여?

<HTML>

<%@ page import="com.young.op.xxxxx" %>

<%

  String su   = request.getParameter("bb");

  out.println("xxxxx:"+su);

  xxxxx  board = new xxxxx();

  board.intReBoard(su);

%>

<script language="javascript">

 function test(){

 var frm = document.aa;

 frm.action = 'a.jsp';

 frm.submit();

}

</script>

<body>

<form name ="aa" method="post">

<input type="text" name="bb" value="5"/>

<input type="button" name="g" id="aa"  value="더하기 "  OnClick="test()"/>

</form>

</BODY>

</html>


표 2) GET과 POST의 차이

GET

POST

디폴트

Hyprelink는 항상 GET을 의미한다.

method속성을 지정하지 않으면 GET이다.

아니다

parameter

주소줄로 보내기 때문에 양이 제한되어 있고, 보안이 취약하다.

몸체로 보내기 때문에 데이터양의 제한이 없고

보안에 강하다.

즐겨찾기

GET의 요청까지 모두 즐겨찾기에 추가된다.

URL만 추가된다.

서버

단지 가져오기위해 사용한다.

POST의 몸체에 있는 데이터를 가지고 서버상의

어떤 데이터를 수정한다.

멱등

이다

아니다