Spring MVC/서블릿

HTTP 요청 데이터 - POST HTML Form

운동하는 주니어개발자 2023. 5. 4. 17:45

HTTP 요청 데이터 - 개요

HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법을 알아보겠다.

주로 3가지 방법을 사용한다.

● GET - 쿼리 파라미터

 - /url?username=hello&age=20

 - 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달

 - 예) 검색, 필터, 페이징등에서 많이 사용하는 방식

● POST - HTML Form

- content-type: application/x-www-form-urlencoded

 - 메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20

 - 예) 회원 가입, 상품 주문, HTML Form 사용

● HTTP message body에 데이터를 직접 담아서 요청

 - HTTP API에서 주로 사용, JSON, XML, TEXT

 - 데이터 형식은 주로 JSON 사용

 - POST, PUT, PATCH

 

이러한 방법들이 존재하는데 하나씩 실습을 진행하면서 공부해보겠다.

POST - HTML Form

이번에는 HTML의 Form을 사용해서 클라이언트에서 서버로 데이터를 전송해보겠다.

주로 회원 가입, 상품 주문 등에서 사용하는 방식이다.

특징

- content-type : application/x-www-form-urlencoded 타입이고

- 메시지 바디에 쿼리 파리미터 형식으로 데이터를 전달한다. username=hello&age=20 (name-value)

우선 실습에 필요한 html파일을 생성하겠다.

hello-form.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<form action="/request-param" method="post">
  username: <input type="text" name="username" />
  age: <input type="text" name="age" />
  <button type="submit">전송</button>
</form>
</body>
</html>

이어서 username, age에 데이터를 입력 후 전송 버튼을 누르면 hello-form.html파일의 action 부분인

"/request-param"으로 입력한 데이터가 전송하는것을 볼 수 있다. 참고로 /request-param의 주소는

이전 글인 GET방식을 실습했던 예제의 주소이다. 저번시간에는 URL에 직접 쿼리를 작성해서 결과를 출력했다면

이번 POST방식은 HTML파일에 데이터를 입력하고 전송한 데이터로 출력이 되는걸 확인할 수 있다.

다음과 같이 데이터를 입력해주고 전송 버튼을 클릭하면 입력한 데이터가 /request-param으로 전송되고

/request-param에 작성했던 코드에 데이터가 입력 되면서 입력된 데이터 바탕으로 출력되는걸 볼 수 있다.

POST의 HTML Form을 전송하면 웹 브라우저는 다음 형식으로 HTTP 메시지를 만든다. (웹 브라우저 개발자 모드 확인)

- 요청 URL: http://localhost:8080/request-param

- content-type: application/x-www-form-urlencoded

- message body: username=hello&age=20

application/x-www-form-urlencoded 형식은 앞서 GET에서 살펴본 쿼리 파라미터 형식과 같다.

따라서 쿼리 파라미터 조회 메서드를 그대로 사용하면 된다. 클라이언트(웹 브라우저) 입장에서는 두 방식에 차이가 있지만, 서버 입장에서는 둘의 형식이 동일하므로, request.getParameter() 로 편리하게 구분없이 조회할 수 있다. 정리하면 request.getParameter() 는 GET URL 쿼리 파라미터 형식도 지원하고, POST HTML Form 형식도 둘 다 지원한다.

 

그런데 이런 간단한 테스트를 진행하고 싶을 때 마다 HTML form을 생성하기에는 효율적이지 못하고 귀찮기도 하다.

이때는 Postman을 사용할 수 있다. Postman을 사용해서 테스트하는 방법을 실습해보겠다.

Postman설치과정은 전에 작성했던 Hello 서블릿 글에서 확인할 수 있다.

1. Postman에 접속 후 왼쪽 상단에 New버튼을 눌러준다.

2. 이어서 HTTP Request를 클릭한다.

3. 아래 사진과 같이 데이터 전송 방식을 POST로 설정 후 테스트 URL을 입력하고 Key와 Value에 데이터를 입력한다.

입력 후 Send를 클릭하고 인텔리제이에 들어가면 결과가 출력된다.

 

'Spring MVC > 서블릿' 카테고리의 다른 글

HTTP 요청 데이터 - GET 방식  (0) 2023.05.04
HttpServletRequest  (0) 2023.05.04
Hello 서블릿 실습  (0) 2023.05.02