본문 바로가기

언어공부/JSP(JavaServerPage)

JSP 기초 문법 - GET 방식 전송과 POST 방식 전송

JSP 기초 문법 - GET 방식 전송과 POST 방식 전송

웹 브라우저는 GET 방식과 POST 방식의 두 가지 방식 중 한 가지를 이용해서 파라미터를 전송한다. <form>태그의 method속성 값을 "get" 또는 "post"로 지정할 수 있다. 

 

  1. get 방식: method속성을 생략하면 기본값이 get 방식이다. get방식은 서버로 전달되는 자료값이 웹브라우저 주소창에 노출되어 보안성이 좋지 않다. (요청 URL에 파라미터를 붙여서 전송한다.) 그리고 서버로 보내는 자료 길이 제한도 있다.
  2. post 방식: 자료 노출이 되지않아 보안성이 뛰어나며, 서버로 전달되는 자료길이 제한이 없다. 대부분 post방식을 사용한다.

GET 방식은 URL의 경로 뒤에 물음표('?')와 함께 파라미터를 붙여 전송하는데, 이를 쿼리 문자열(query string)이라고 한다. 

 

GET 방식과 쿼리 문자열

 

각각의 파라미터는 앰퍼샌드(&) 기호로 구분하며, 파라미터의 이름과 값은 등호기호(=)로 구분한다. 만약 파라미터의 값이 한글일 경우에는 이상한 문자로 표시가 되는데, 이유는 파라미터 값을 RFC 2396 규약에 정의된 규칙에 다라 인코딩해서 전송하기 때문이다. 

 

GET방식은 URL의 쿼리 문자열로 전송되기 때문에, 폼을 사용하지 않아도 파라미터를 전송할 수 있다. 

 

URL에 파라미터를 직접 입력하여 값을 전송한 경우의 실행 화면

 

URL에 파라미터가 함께 전송되는 GET방식과 달리 POST방식은 데이터 영역을 이용해서 파라미터를 전송한다. GET방식은 웹 브라우저, 웹 서버 또는 웹 컨테이너에 따라 전송할 수 있는 파라미터 값의 길이에 제한이 있을 수 있다. 반면에 POST 방식은 데이터 영역을 이용해서 데이터를 전송하기 때문에 웹 브라우저나 웹 서버 등에 상관없이 전송할 수 있는 파라미터의 길이에 제한이 없다.