클라이언트에서 서버로 데이터 전송
-
쿼리 파라미터를 통한 전송
-
메시지 바디를 통한 데이터 전송
- POST,PUT,PATCH
- 회원가입,상품주문,리소스 추가 변경
-
정적 데이터 조회
- 조회기 때문에 GET사용
- 정적데이터(이미지,정적 텍스트) 리소스 경로로 단순하게 조회가 가능하다 ,쿼리 파라미터 미사용
-
동적 데이터 조회
- 쿼리 파라미터 사용'
- 주로 검색, 게시판 목록에서 정렬 필터
- 조회 조건을 줄여주는 필터
- GET은 쿼리 파라미터 사용해서 데이터를 전달한다
-
HTML Form 데이터 전송
- POST 전송 - 저장
- 쿼리 파라미터와 거의 동일한 방법을 바디에 담아서 보낸다
- mutlipart/form-data - 웹브라우저가 boundary 를 잘라서
컨텐트타입에 대한 정보를 보낸다
주로 바이터리 데이터 전송시에 사용한다
- HTML Form은 GET,POST만 지원함
-
HTTP API 데이터 전송
- 서버 to 서버
- 앱 클라이언트
- 웹 클라이언트 Form 전송 대신 , AJAX 사용
- Content - Type : application/json 을 주로 사용(사실상 표준)
HTTP API 설계 예시
- HTTP API - 컬렉션
- HTTP API - 스토어
- HTML FORM 사용
- 회원 관리 시스템 ( POST - 신규 자원 등록 특징)
- 클라이언트는 등록될 리소스 URI를 모른다
- 서버가 새로 등록된 리소스 URI를 생성해준다
- 컬렉션
- 서버가 관리하는 리소스 디렉토리
- 서버가 리소스 URI를 생성하고 관리
- 파일 관리 시스템 ( PUT - 신규 자원 등록 특징)
- 클라이언트가 리소스 URI를 알고 있어야 한다.
- 클라이언트가 직접 리소스 URI를 지정한다
- 스토어
- 클라이언트가 관리하는 리소스 저장소
- 클라이언트가 리소스의 URI를 알고 관리
- HTML FORM 사용
- HTML FORM 은 GET,POST만 사용가능
- 컨트롤 URI
- GET,POST만 지원하기때문에 제약이있다
- 동사를 사용해서 리소스 경로를 사용한다
참고하면 좋은 URI 설계 개념
출처 : https://restfulapi.net/resource-naming/
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 참고하여
작성한 자료입니다.