- HTTP 메세지의 시작 부분의 쿼리 파라미터를 통한 데이터 전송
-> GET - 데이터 정렬 필터 ex) 무신사에서 필터 남자로 설정- 메세지 바디를 통한 데이터 전송
-> POST, PUT, PATCH ex) 회원 가입, 상품 주문, 등록, 변경
- 회원 목록 : /members 로 GET 요청
- 회원 등록 : /members 로 POST 요청
- 회원 조회 : /members/id값 으로 GET 요청
- 회원 수정 : /members/id값 으로 POST, PATCH, PUT 요청 **PUT은 보통 게시판 게시물 수정 같은 것에 사용
- 회원 삭제 : /members/id값 으로 DELETE 요청
회원 등록에서 클라이언트는 등록될 리소스의 URI를 모른다. 클라이언트는 /members로 POST요청을 하면, 서버에서
와 같이 리소스 URI를 생성한다.
그리고 /members는 컬렉션(Collection)이라 하며, 이는 서버가 관리하는 리소스 디렉토리이다. 즉, 서버가 리소스의 URI를 생성하고 관리한다.
- 파일 목록 : /files 로 GET 요청
- 파일 조회 : /files/파일이름 으로 GET 요청
- 파일 등록 : /files/파일이름 으로 PUT 요청
- 파일 삭제 : /files/파일이름 으로 DELETE 요청
- 파일 대량 등록 : /files 로 POST 요청
파일 등록에서 클라이언트는 PUT /files/image.jpg 와 같이 서버에 HTTP 요청을 보내는데, 클라이언트가 리소스의 URI를 알고 있는 것이다. 즉, 클라이언트가 리소스의 URI를 직접 지정한다.
/files를 스토어(Store)라 하며, 이는 클라이언트가 관리하는 리소스 저장소이다. 즉, 클라이언트가 리소스의 URI를 알고 관리한다.
- 회원 목록 : /members 로 GET 요청
- 회원 등록 폼 : /members/new 로 GET 요청
- 회원 등록 : /members/new 로 POST 요청
- 회원 조회 : members/id값 로 GET 요청
- 회원 수정 폼 : /members/id값/edit 으로 GET 요청
- 회원 수정 : /members/id값/edit 으로 POST 요청
- 회원 삭제 : /members/id값/delete 로 POST 요청
** 폼은 회원 등록을 클릭했을 때, 창에 띄워지는 화면을 말함.
HTML FORM에서는 GET, POST만 지원한다. 따라서, 이 제약을 해결하기 위해 컨트롤 URI를 사용한다.
예를 들면, 위 예제에서, 회원 삭제를 할 때, 원래 같으면 DELETE 매서드를 사용했겠지만, GET 과 POST만 지원하기 때문에 컨트롤 URI를 사용해 /members/id값/delete 로 POST 요청을 보낸다.
이때, 경로는 동사를 사용한다.
** 인프런 HTTP 강의 (김영한) 참고