파라미터 전송 - GET, POST 방식

2017.09.26 22:54

졸리운_곰 조회 수:123

 

파라미터 전송 - GET, POST 방식

 

웹페이지에서 데이터를 전송할 때 2가지 방식이 있다. get 방식과 post 방식이다. 각각의 차이는 소스코드를 통해 알아보자. 

 

 

 

GET 방식

 

  • parameter01.jsp

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>parameter01.jsp 파리미터값 입력 페이지</title>
</head>
<body>
    <!-- get 방식을 사용해서 데이터 전송 (method="get") -->
    <form action="parameter02.jsp" method="get">
        이름 : <input type="text" name="name" size="10"><br>
        주소 : <input type="text" name="address" size="30"><br>
        취미 :
            <input type="checkbox" name="hobby" value="game">게임
            <input type="checkbox" name="hobby" value="travel">여행
            <input type="checkbox" name="hobby" value="reading">독서
            <br>
        <input type="submit" value="전송">
    </form>
</body>
</html>
cs

 

  • parameter02.jsp

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
    // 인코딩
    request.setCharacterEncoding("euc-kr");
%>
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>parameter02.jsp 파리미터값 출력 페이지</title>
</head>
<body>
    이름 : <%= request.getParameter("name"%><br>
    주소 : <%= request.getParameter("address"%><br>
    취미 : 
    <%
        // 체크박스는 배열로 처리해야 한다.
        String[] values = request.getParameterValues("hobby");
        if(values != null){
            for(int i=0; i<values.length; i++){        
    %>
        <%=values[i] %>
    <%                        
            }
        }
    %>
</body>
</html>
cs

 

 

먼저 get 방식에 대해 알아보자. 위의 parameter01.jsp를 실행하면 아래와 같은 모습의 입력 폼이 나올 것이다.

 

 

 

 

이름과 주소, 그리고 취미를 선택하고 전송 버튼을 누르면 입력한 데이터가 parameter02.jsp로 전달된다.

 

 

 

 

 

위에 사진에서 주소창을 확인해 보자. parameter02.jsp? 뒤에 무언가 붙어있는 것을 확인할 수 있다. 바로 입력한 데이터이다. get 방식은 입력한 데이터 값을 URL에 붙여서 전송하는 것이다.

 

 

 

POST 방식

 

  • parameter01.jsp

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>parameter01.jsp 파리미터값 입력 페이지</title>
</head>
<body>
    <!-- post 방식을 사용해서 데이터 전송 (method="post") -->
    <form action="parameter02.jsp" method="post">
        이름 : <input type="text" name="name" size="10"><br>
        주소 : <input type="text" name="address" size="30"><br>
        취미 :
            <input type="checkbox" name="hobby" value="game">게임
            <input type="checkbox" name="hobby" value="travel">여행
            <input type="checkbox" name="hobby" value="reading">독서
            <br>
        <input type="submit" value="전송">
    </form>
</body>
</html>
cs

 

  • parameter02.jsp

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
    // 인코딩
    request.setCharacterEncoding("euc-kr");
%>
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>parameter02.jsp 파리미터값 출력 페이지</title>
</head>
<body>
 
    이름 : <%= request.getParameter("name"%><br>
    주소 : <%= request.getParameter("address"%><br>
    취미 : 
    <%
        // 체크박스는 배열로 처리해야 한다.
        String[] values = request.getParameterValues("hobby");
        if(values != null){
            for(int i=0; i<values.length; i++){        
    %>
        <%=values[i] %>
    <%                        
            }
        }
    %>
</body>
</html>
cs

 

 

parameter01.jsp을 실행시켜 데이터를 입력 후 전송버튼을 눌러보자. 

 

 

 

 

 

그리고 주소창을 확인해 보자. get 방식과 달리 post 방식은 주소창에 뭔가 붙어있지 않다. get 방식과 달리 post 방식은 입력한 데이터를 본문에 포함해서 전송하기 때문이다.

 

 

 

 GET, POST의 차이점

 

 

소스코드를 통해 두가지 방식을 확인해 보았다. 차이점에 대해 정리를 해보면 이렇다.

 

 

<GET 방식>

  • 입력한 데이터를 URL에 붙여서 전송한다. 데이터가 다 보이므로 보안에 취약하다.

  • 전송할 수 있는 데이터는 256바이트를 넘을 수 없다.

  • 전송속도는 POST방식 보다 빠르다.

 

<POST방식>

  • 입력한 데이터를 본문안에 포함해서 전송한다.

  • 입력한 데이터가 URL에 보이지 않으므로 GET방식 보다 보안에 우수하다.

  • 전송할 데이터의 길이에 제한이 없다.

  • 복잡한 형태의 데이터를 전송할 때 유용하다.



출처: http://all-record.tistory.com/100 [세상의 모든 기록]

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
46 전자정부 표준프레임워크 - CKEditor 적용하기 file 졸리운_곰 2018.01.11 568
45 IntelliJ에서 SpringBoot 웹 프로젝트 생성하기 file 졸리운_곰 2017.11.14 222
» 파라미터 전송 - GET, POST 방식 file 졸리운_곰 2017.09.26 123
43 Velocity Template Engine 시작하기 file 졸리운_곰 2017.09.26 91
42 Migrating a Spring Web MVC application from JSP to AngularJS file 졸리운_곰 2017.09.26 68
41 [톰캣] server.xml 설정 file 졸리운_곰 2017.09.24 352
40 톰캣의 컨텍스트 외부로 경로 매핑하는 방법 졸리운_곰 2017.09.24 171
39 프레임 나뉜 페이지에서 새로고침시 페이지 유지하기 졸리운_곰 2017.09.17 77
38 [Spring] 한국거래소의 주가 정보 가져오기 졸리운_곰 2017.08.10 416
37 [Ibatis] 부등호 <, > 의 표시 졸리운_곰 2017.07.06 193
36 동적 SQL mybatis 가을의곰 2017.06.10 116
35 [mybatis] foreach를 이용한 다중 insert 가을의곰 2017.06.10 413
34 mybatis (foreach문, in절) 가을의곰 2017.06.10 407
33 SW 릴리스를 간편하게 - Maven plugin + Jenkins file 졸리운_곰 2017.03.20 103
32 Migrating Spring Web MVC from JSP to AngularJS file 졸리운_곰 2017.02.07 207
31 Migrating a Spring Web MVC application from JSP to AngularJS file 졸리운_곰 2017.02.07 1513
30 Spring and Angular JS: A Secure Single Page Application 졸리운_곰 2017.02.06 426
29 스프링부트 소개 졸리운_곰 2017.02.06 190
28 Spring boot 시작하기 졸리운_곰 2017.02.06 247
27 [Java]Spring Boot를 사용한 web어플리케이션 만들기 file 졸리운_곰 2017.02.06 171
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED