-
HTTP API 설계하기개발 2021. 3. 18. 01:17
클라이언트에서 서버로 데이터 전송할 때 크게 2가지 전달 방식을 사용한다
쿼리 파라미터를 통한 데이터 전송
- GET
- 주로 정렬 필터 (검색어)
메세지 바디를 통한 데이터 전송
- POST, PUT, PATCH
- 회원 가입, 상품 주문, 리소스 등록, 리소스 변경
클라이언트에서 서버로 데이터 전송을 하는 4가지 상황
정적 데이터 조회
쿼리 파라미터 미사용
이미지나 정적 텍스트 문서를 전달.
조회는 GET METHOD를 사용하지만 단순히 리소스 경로를 사용해 조회가 가능하다.
동적 데이터 조회
쿼리 파라미터 사용
서버는 쿼리 파라미터를 기반으로 정렬 필터를 적용해 결과를 동적으로 생성해서 보내준다.
주로 검색, 게시판 목록에서 정렬 필터 (검색어)
조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용한다.
조회는 GET METHOD를 사용한다, GET은 Query Parameter를 사용해 데이터를 전달하기 때문이다.
HTML Form Data 전송
POST 전송 - 저장
GET으로 보내도 받을 수는 있지만 보안적인 측면에서 좋지 않음, POST를 사용하는 것이 원칙.
Multipart/FormData - 저장 (파일 전송)
HTML Form Submit시 POST METHOD를 통한 전송
ex) 가입, 주문, 변경
Content-Type: application/x-www-form-urlencoded 사용
form의 내용을 메시지 바디를 통해 전송 (key=value, 쿼리파라미터 형식)
전송 데이터를 url encoding 처리한다.
Content-Type: multipart/form-data
파일 업로드 같은 바이너리 데이터 전송 시 사용
다른 종류의 여러 파일과 Form의 내용을 함께 전송 가능
HTML Form Submit은 GET, POST만 가능하다.
HTTP API DATA 전송
Server to Server
Back-End System 통신
App Client
Iphone, Android
Web Client
HTML에서 Form 대신 JS를 사용한 통신 (AJAX, http, Axios..)
ex) React, Vue.js 같은 Web Client API 통신
POST, PUT, FATCH : Message Body를 통한 API 통신
GET : 조회, 쿼리 파라미터로 데이터 전달
Content-Type: application/json을 주로 사용한다 사실상 표준임
text, xml, json ....
HTTP API - Collection
POST 기반 등록
ex) 회원 관리 API 제공
HTTP API - Store
PUT 기반 등록
ex) 정적 컨텐츠 관리, 원격 파일 관리
HTML FORM 사용
웹 페이지 회원 관리
'개발' 카테고리의 다른 글
4xx Client Error (0) 2021.05.05 3xx Redirection (0) 2021.05.05 HTTP METHOD - PUT&PATCH&DELETE (0) 2021.02.02 HTTP METHOD - GET & POST (0) 2021.02.02 HTTP API - Intro (0) 2021.02.02