- REST : Representation State Transfer의 약자
- 자원을 이름(자원에 대한 표현)으로 구분하여 해당 자원의 상태(자원의 정보)를 주고 받는 방식의 소프트웨어 아키텍처
* Representation : 자원의 표현, 요청 URI로 표현
* State : 자원의 현재 상태
* URL : 자원이 실제로 존재하는 위치
* URI : 자원의 위치뿐만 아니라 자원에 대한 고유 식별자로서, URL을 포함하는 상위 개념
- 단순하게 하나의 브라우저만 지원하던 방식 -> 멀티 플랫폼, 멀티 디바이스 등장
- 플랫폼에 맞춰서 새로운 서버 애플리케이션을 개발하는 대신, 범용적으로 사용성을 보장하는 새로운 서버 애플리케이션 디자인이 필요해졌다.
(Resource)
(Verb)
(Representation of Resource)
1. URI로 자원의 이름을 표현한다.
URI는 정보의 자원을 표현해야 한다. (리소스명은 동사보다 명사를 사용한다.)
GET /members/delete/1
- 유효하지 않은 URI, URI에 행위를 나타내는 동사는 적합하지 않다.
DELETE /member/1
- 유효한 URI, 회원정보 1(회원아이디)를 삭제한다.
2. HTTP Method로 자원에 대한 행위를 표현한다.
HTTP Method | URI | O/X | |
---|---|---|---|
회원정보 조회 | GET | /member/show/1 | X |
GET | /member/1 | O | |
--------------- | ------------- | -------------------- | ---- |
회원정보 삭제 | GET | /member/delete/1 | X |
DELETE | /member/1 | O | |
--------------- | ------------- | -------------------- | ---- |
회원정보 수정 | POST | /member/1 | X |
PUT | /member/1 | O | |
--------------- | ------------- | -------------------- | ---- |
회원정보 추가 | POST | /member | O |
* URI 설계 시 주의사항
응답코드 | 의미 |
---|---|
200 | 클라이언트의 요청을 성공적으로 수행하였음 |
201 | 클라이언트가 리소스의 생성을 요청, 해당 리소스를 성공적으로 생성하였음 (POST 요청을 통한 리소스 생성 시 응답코드) |
400 | 클라이언트의 요청이 부적합할 때 |
401 | 클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청했을 때 |
403 | 클라이언트의 요청을 거부할 때 |
404 | 클라이언트가 요청한 리소스가 존재하지 않을 때 |
405 | 클라이언트가 요청한 요청방식이 지원하지 않을 때 |
500 | 클라이언트의 요청을 처리하는 중 서버 오류가 발생했을 때 |