클라이언트 -> 서버 데이터 전송 방식
이전 HTTP 메서드 포스팅을 통해 알 수 있는 사실이 있다.
HTTP 를 통해 데이터를 전달하는 방식은 크게 두가지 있는데, 이는 다음과 같다
- 쿼리 파라미터를 통한 데이터 전송 -> GET 을 통한 정렬 필터 사용
- 메시지 바디에 직접 데이터를 담아 전송 -> POST, PUT, PATCH 등을 통해 사용
HTTP API 설계 예시
- HTTP API - POST 기반으로 컬렉션(리소스)를 등록
- HTTP API - 스토어 -> PUT 기반의 등록을 통한 정적 컨텐츠, 원격 파일 관리
- HTML FORM 사용 -> 웹 페이지 회원 관리, GET || POST
1탄의 요구사항에 HTTP 메서드를 통한 구분
HTTP 메서드는 행위 -> 동사, members 는 리소스
즉 우리는 HTTP 메서드를 통해 이제 리소스와 행위를 분류할 수 있게 되었다
1. 회원 목록 -> GET /members
2. 회원 등록 -> POST /members
3. 회원 조회 -> GET /members/{id}
4. 회원 수정 -> PATCH || PUT || POST /members/{id}
5. 회원 삭제 -> DELETE /members/{id}
HTML FORM 사용
HTML 폼을 사용하게 된다면 GET, POST 메서드만 사용할 수 있게 된다. 즉 우리는 다른 메서드 (PATCH, PUT 등)은 사용할 수 없게 되는데, 이를 해결하기 위한 가장 단순한 방법은 Controll URI를 사용하는 것이다.
Controll URI
GET , POST 만 지원하는 HTML Form 의 제약을 해결하기 위한 동사로 된 리소스 경로를 사용할 수 있다.
예를 들어 POST 의 /new, /edit, /delete 등이 컨트롤 URI 인데, HTTP 메서드로 해결하기 애매한 경우에 사용할 수 있다.
Controll URI를 적용한 API
회원 목록 /members -> GET
회원 등록 폼 /members/new -> GET
회원 등록 /members/new, /members -> POST
회원 조회 /members/{id} -> GET
회원 수정 폼 /members/{id}/edit -> GET
회원 수정 /members/{id}/edit, /members/{id} -> POST
회원 삭제 /members/{id}/delete -> POST
'HTTP' 카테고리의 다른 글
[HTTP] HTTP API 만들어보기 2 - HTTP 메서드 정리 (0) | 2025.06.15 |
---|---|
[HTTP] HTTP API 만들어보기 1 - 리소스와 행위의 분류 (0) | 2025.06.15 |
[HTTP] Connectionless - 비연결성 모델 (0) | 2025.06.15 |
[HTTP] Stateless vs Stateful 어떤 것을 선택해야 할까? (0) | 2025.06.14 |
[HTTP] URL, URI , URN 이 대체 뭔데? (0) | 2025.06.14 |