데이터 전달 방식은 크게 2가지이다.
GET
에서 많이 사용한다. POST
, PUT
, PATCH
에서 주로 사용한다.GET
은 쿼리 파라미터를 사용해서 데이터를 전달한다.HTML Form submit시 POST 전송
→ 데이터를 HTTP Body에 넣는다.
Content-Type
: application/x-www-form-urlencoded
key=value
, 쿼리 파라미터 형식)url encoding
처리한다.HTML Form - GET 전송
→ GET 방식일 경우, 쿼리로 데이터를 넣는다.
저장
조회
HTML Form - multipart/form-data
Content-Type
: multipart/form-data
multipart
!)Ajax
)에서 사용된다.POST
, PUT
, PATCH
: 메세지 바디를 통해 데이터 전송GET
: 조회, 쿼리 파라미터로 데이터 전달Content-Type
: application/json
을 주로 사용(사실상 표준)HTTP API
를 어떻게 설계하는지에 대해 알아보자!
- HTTP API - 컬렉션
- POST 기반 등록
- 회원 관리 API제공
- HTTP API - 스토어
- PUT 기반 등록
- 정적 컨텐츠 관리, 원격 파일 관리
- HTML FORM 사용
- 웹 페이지 회원 관리
- GET, POST만 지원
POST 기반 등록 - 회원 관리 시스템
/members
→ GET/members/{id}
→ GET/members
→ POST/members/{id}
→ PATCH, PUT, POST/members/{id}
→ DELETE/members
→ POSTPOST /members
HTTP/1.1 201 Created
Location: /members/100
/members
PUT 기반 등록 - 파일 관리 시스템
/files
→ GET/files/{filename}
→ GET/files/{filename}
→ PUT/files/{filename}
→ DELETE/files
→ POST/files/{filename}
→ PUTPUT /files/star.jpg
/files
💡 보통 POST 기반의 컬렉션을 주로 사용한다.
/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/new
, /edit
, /delete
가 컨트롤 URI
이다./members/100
, /files/star.jpg
/members
/files
/members/{id}/delete