본문 바로가기
Backend, Server/HTTP

[HTTP] HTTP 메서드 활용(데이터 전송 방식, HTTP API 설계 예시)

by ggyongi 2022. 1. 6.
반응형

클라이언트에서 서버로 데이터 전송하는 방식은 크게 2가지

1. 쿼리 파라미터를 통한 데이터 전송

 - GET

 - 주로 정렬 필터(검색어)

 

2. 메시지 바디를 통한 데이터 전송

 - POST, PUT PATCH

 - 회원가입, 상품 주문, 리소스 등록 등

 

 

클라이언트에서 서버로 데이터 전송 - 4가지 상황

1. 정적 데이터 조회

- GET을 이용하며, 쿼리 파라미터 필요없음

 

2. 동적 데이터 조회

- GET을 이용하며, 쿼리 파라미터 사용

 

3. HTML Form 데이터 전송(HTML Form 전송은 GET, POST만 지원)

- POST 전송 - 저장 : 웹브라우저가 Form을 이용해 HTTP 요청 메시지 생성

(Content-Type: application/x-www-form-urlencoded 사용)

- GET 전송 - 조회 :  웹브라우저가 Form을 이용해 HTTP 요청 메시지 생성

(* GET 전송을 저장에 사용하면 안됨!! GET은 조회에만 사용!)

- 파일 업로드 같은 바이너리 데이터 전송 시에는 Content-Type: multipart/form-data 사용

 

4. HTTP API 데이터 전송

• POST, PUT, PATCH: 메시지 바디를 통해 데이터 전송
• GET: 조회, 쿼리 파라미터로 데이터 전달
• Content-Type: application/json을 주로 사용 (사실상 표준)
• TEXT, XML, JSON 등등

 

 

HTTP API 설계 예시

1. 컬렉션 : POST 기반 등록 ex) 회원 관리 API 제공

- 클라이언트는 등록될 리소스의 URI를 모름

- 서버가 새로 등록된 리소스 URI를 생성해줌

- 즉 컬렉션이란 서버가 관리하는 리소스 디렉토리

 

2. 스토어 : PUT 기반 등록 ex) 정적 컨텐츠 관리, 원격 파일 관리

- 클라이언트가 리소스 URI을 알고있어야 함

- 클라이언트가 직접 리소스의 URI 지정

- 즉 스토어란 클라이언트가 관리하는 리소스 저장소

 

3. HTML FORM 사용 ex) 웹페이지 회원 관리

- GET, POST만 지원하므로 제약이 있음

- 컨트롤 URI => 이런 제약을 해결하기 위해 동사로 된 리소스 경로를 사용

- POST의 /new, /edit, /delete가 컨트롤 URI

- HTTP 메서드로 해결하기 애매한 경우 사용(HTTP API 포함)

 

 

-----------------------------------------

참고 : 인프런 김영한님 강의(모든 개발자를 위한 HTTP 웹 기본 지식)

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글