HTTP 메서드에는 아래에 소개해드릴 GET, POST 이외에도 PUT, PATCH 등 다양한 방식이 있지만 WEB 개발에서는 주로 아래 3가지 방식을 많이 사용합니다.

 

그래서 3가지 방식에 대해서 정리해보려고 합니다.

 

클라이언트(사용자)는 보통 3 가지 방식으로 데이터를 전달(요청)한다.

GET 방식
POST 방식
Http Message Body에 데이터를 직접 담는 방식

 

  • GET 방식
    • URL + '?' 뒤에 쿼리스트링(파라미터)을 사용하는 방식
      • 쿼리 스트링은 key=value 형태로 이루어져 있으며 여러 개를 보내고 싶을 때는 '&' 기호를 사용한다.
    • GET 방식은 body 영역을 사용하지 않기 때문에 대용량 데이터 전송을 할 수 없다.
    • 그리고 전달 정보가 URL에 모두 표시가 되기 때문에 파라미터를 실제로 확인할 수 있어 보안상 문제가 있다.
    • 그래서 보안과 관련없는 검색, 필터, 페이징 등에 많이 사용된다.
URL?page=1&best=desc
key = page, value = 1
key = best, value = desc
위와 같은 형태를 주로 사용한다.

 

  •  POST
    • GET 방식과 달리 body 영역에 데이터를 담아서 보낸다.
    • 그래서 데이터 전송량에 제한이 없어서 대용량 데이터를 보내는데 적합하다.
    • content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파라미터 형식으로 전달한다.
      • 파일 전송의 경우에는 multipart/form-data 형태로 달라진다.
    • 그래서 HTML FORM 데이터를 전달할 때 많이 사용된다.
body(본문) 영역
name=hong&age=10
형태는 유사하지만 단지 영역이 body 영역으로 달라졌을 뿐이다.
  • HTTP Message Body에 데이터를 직접 담아서 요청하는 방식
    • 데이터 형식은 TEXT, XML, JSON 등을 사용하는데 요즘은 주로 JSON 형태로 전달한다.
    • 응답을 받을 때는 보통 HTTP 메시지 컨버터를 이용해서 데이터를 변환해서 사용한다.
    • 보통 REST API(HTTP API)에서 주로 사용한다.
    • 이 방법은 GET과 POST와는 다르게 VIEW 페이지와는 상관이 없다.