이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!
⛅️ HTTP Method
HTTP API 설계에서 가장 중요한 것은 "리소스"를 식별하는 것이다.
예를 들어 '회원을 등록하다'에서 리소스는 "회원"이지, "등록하다"는 리소스가 아니다.
회원과 관련된 기능에 대한 API를 만든다고 가정하자.
'회원을 등록하다', '회원을 조회하다'가 /members가 될텐데, 그렇다면 '등록하다'와 '조회하다'를 어떻게 구분해야 할까?
이 때 사용하는 것이 바로 HTTP Method이다.
'등록하다'에서 POST 메서드를 사용하고, '조회하다'에서 GET 메서드를 사용하면 같은 URI를 사용하더라도 구분이 가능할 것이다.
HTTP 요청 메서드는 HTTP 동사라고 부르기도 한다.
⛅️ GET : 리소스 조회
● GET 메서드는 특정 리소스를 조회할 때 사용한다.
GET을 사용하는 요청은 오직 데이터를 받기만 한다.
● message body는 포함할 수 있지만, 지원하지 않는 곳이 많아 권장하지 않는다.
● 서버에 전달하고 싶은 데이터가 있을 때에는 query(쿼리 파라미터, 쿼리 스트링)을 통해 전달할 수 있다.
<GET method를 사용한 Request message>
GET/ search?q=hello&hl=ko HTTP/1.1
Host: www.google.com
⛅️ POST : 요청 데이터 처리
[POST 개요]
● POST 메소드는 주로 요청 데이터를 처리할 때 / 리소스를 생성할 때 사용한다.
● message body에 요청할 데이터를 담아서 전달할 수있다.
● 서버는 클라이언트에게서 message body를 통해 받은 요청 데이터를 처리한다.
● 만일 리소스 생성에 성공했다면 201 created HTTP 상태코드와 생성된 리소스의 URI를 Location 헤더에 담아서 Response한다.
[POST를 사용하는 때]
1. 새로운 리소스를 생성(등록)할 때
현재 서버에서는 아직 식별할 수 없는(존재하지 않던) 새로운 리소스 생성.
2. 요청 데이터 처리
프로세스를 처리해야 하는 경우/ 프로세스의 상태가 변경(결제 완료 → 배달 시작)되는 경우
이 경우에는 POST의 결과로 새로운 리소스가 생성되지 않을 수 있다.
3. 다른 메서드로 처리하기 애매한 경우
JSON으로 조회 데이터를 넘겨야 하는데, GET 메서드를 사용하기 어려운 경우.