HTTP 메서드는 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식을 일컫는다.
HTTP 메서드는 총 9가지이지만, 이 글에서는 GET과 POST에서만 다룰 예정이다.
리소스 조회 메서드로, 요청하는 데이터가 HTTP Request Message의 Header 부분에 url이 담겨서 전송된다.
url 의 ?(query string) 을 통해서 데이터를 전달한다.
query string외에 메시지 바디를 사용하여 데이터를 전달할 수 있지만, 서버에서 따로 구성해야 되기때문에 지원하지 않는 곳이 많으며, 이러한 방식은 url이라는 공간에 담겨가기 때문에 전송할 수 있는 데이터의 크기가 제한적이기도 하다.
또한, 리소스 조회 시 POST 도 사용할 수 있지만, GET 메서드는 캐싱이 가능하여 GET을 사용하는 것이 유리하다.
그러나, 보안이 필요한 데이터(ex. password)는 그대로 url에 노출되기 때문에 이때는 GET 방식이 적절하지않다.
아무튼, GET의 조회과정은 정적과 동적으로 나뉜다.
정적 데이터 조회 과정
1) 이미지, 정적 텍스트 문서
2) 쿼리 파라미터 없이 리소스 경로로 단순 조회 가능
동적 데이터 조회 과정
1) 주로 검색, 게시판 목록에서 검색어로 이용
2) 쿼리 파라미터 사용해서 데이터 전달
3) 쿼리 파라미터는 key1=value1&key2=value2 구조로 되어있음
HTML Form 데이터 조회 과정
또한 HTML Form 데이터도 조회 가능한데, 이는 HTML Form 태그 문서로 사용자와 UI로 상호작용하여 서버와 통신하며 HTML Form 전송은 GET, POST만 지원한다.
전달한 데이터를 처리 및 생성 요청하는 메서드로, POST 방식의 request는 HTTP Request Message의 Body 부분에 데이터가 담겨서 저장된다.
POST는 서버의 값이나 상태를 변경 혹은 추가하기 위해서 사용되는데, 이는 주로 신규 리소스 등록과 프로세스 처리에 사용되는 것이다.
JSON 데이터 전송 과정
1) 클라이언트는 body에 등록할 회원 정보를 JSON 형태로 만들어 담고 서버로 전송한다.
2) 이렇게 받은 메세지를 서버가 분석하여 로직대로 처리하는데, 예를 들어 데이터베이스에 신규 아이디를 등록하여 생성하는 일을 하게 되는 것이다.
3) 그 이후에, 신규회원에 대한 데이터를 바디에 담아 클라이언트로 응답을 보낸다.
HTML Form 데이터 전송 과정
1) HTML Form 태그 문서로 사용자와 UI로 상호작용하여 서버와 통신한다.
2) 회원가입, 상품 주문, 데이터 변경에 이용한다.
3) HTML Form 데이터 전송은 GET, POST만 지원한다.