클라이언트에서 서버로의 데이터 전송
데이터 전달 방식
- 쿼리 파라미터를 통한 데이터 전송 : GET
- 주로 정렬 필터(검색어)
- 메세지 바디를 통한 데이터 전송 : POST, PUT, PATCH
- 회원 가입, 상품 주문, 리소스 등록, 리소스 변경
정적 데이터 조회
- 이미지, 정적 텍스트 문서
- 조회는 GET 사용
- 정적 데이터는 쿼리 파라미터 없이 리소스 경로로 단순히 조회 가능
동적 데이터 조회
- 쿼리 파라미터 사용
- 쿼리 파라미터를 기반으로 정렬 필터해서 결과를 동적으로 생성
- 주로 검색, 게시판 목록에서 정렬 필터
- 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용
HTML FORM 데이터 전송
- html form 태그를 통해 POST 요청 생성
- GET으로 요청을 생성할 수도 있지만, GET은 조회에만 사용!

- 여러 종류의 데이터나 바이너리 파일을 전달하기 위해서는 entype=multipart/form-data로 설정해줘야 한다.

HTTP API 데이터 전송
- 서버에서 서버로 데이터를 전달해야 하는 경우나 앱 클라이언트에서 전달하는 경우, 자바 스크립트를 통한 통신(AJAX)에서 사용
- Content-Type: application/json을 주로 사용
- POST, PUT, PATCH, GET 등의 HTTP 메서드 사용
HTTP API 설계 예시
POST 기반 등록 - 컬렉션

- 컬렉션 : 서버가 관리하는 리소스 디렉토리, 서버가 리소스의 URI를 생성하고 관리
- PUT과의 차이점 : 클라이언트는 등록될 리소스의 URI를 모른다.
- 즉, 서버가 새로 생성된 리소스에 대한 URI를 생성
PUT 기반 등록 - 스토어

- 스토어 : 클라이언트가 관리하는 리소스 저장소, 클라이언트가 리소스의 URI를 관리
- POST와의 차이점 : 클라이언트가 리소스 URI를 알고 있어야 한다.
- 즉, 클라이언트가 직접 리소스의 URI를 지정
HTML FORM 사용
- HTML FORM은 GET, POST만 지원
- control URI를 사용할 수 밖에 없는 상황이 존재 → control URI를 사용

- 폼의 GET과 POST의 URI를 맞출 것인가는 선택 사항
- POST의 /new, /edit, /delte는 control URI
참고하면 좋은 URI 설계 개념

'CS > HTTP' 카테고리의 다른 글
| HTTP헤더1 - 일반 헤더 (0) | 2023.12.08 |
|---|---|
| HTTP 상태코드 (0) | 2023.12.08 |
| HTTP 메서드 (0) | 2023.12.08 |
| HTTP 기본 (1) | 2023.12.08 |
| URI와 웹 브라우저 요청 흐름 (0) | 2023.12.08 |