웹에 존재하는 모든 자원(이미지,동영상,DB 자원)에 고유한 URI를 부여해 활용하는 것으로, 자원을 정의하고 자원에 대한 주소를 지정하는 방법론을 의미.
이런 REST 형식을 따른 시스템을 RESTful 이라 부름.
HTTP URI를 통해 자원을 명시하고 HTTP Method를 통해 해당 자원의 대한 CRUD Operation을 적용.
웹은 클라이언트와 서버로 구분, 클라이언트 (요청 -> 서버) & 서버(응답 -> 클라이언트)
REST API {URI(주소) 통해서 요청--> 서버} & {서버 html,xml,json등으로 --> 응답}
주소는 명사로 구성, 명사만 있을 시 무슨 동작을 행하는지 알기 어렵기 때문에 REST에서는 HTTP 요청 메서드를 사용한다
🐯 URI 형식으로 웹 서버측 리소스(데이터)를 요청
서버 자원 가져오고자 할 때 사용.
파라미터를 넘겨서 해당하는 본문형식을 받는다.
🐻❄️ 내용 전송(파일 전송 가능)
클라이언트에서 서버로 전달하고자하는 정보를 서버로 보냄
서버에 자원을 새로 등록하고자 할 때 사용
🐹 내용 갱신 위주(파일 전송 가능)
POST처럼 정보를 서버로 제출하는 것이나 보통 갱신 위주
서버의 자원을 요청에 들어 있는 자원으로 치환할 때 사용
🐷 클라이언트가 서버의 리소스를 수정 할 때 사용
🦊 웹 리소스를 제거할 때 사용
하지만, DELETE의 경우 서버에서 클라이언트의 요청을 무시 가능하기 때문에 실제로 삭제되지 않았지만, 클라이언트는 파일이 삭제 되었다고 생각할 수 있다.
-> 원격지 웹 서버에 파일을 삭제하기 위해 사용되며, 멱등성을 가지고 있습니다.
서버에게 요청 URL로 지정한 리소스를 삭제할 것을 요청하더라도 클라이언트는 삭제가 수행되는 것을 보장 못한다.
이유 : HTTP 명세에는 서버가 클라이언트에게 알리지 않고 요청을 무시하는 것을 허용하지 않기 때문입니다.
보통 대부분의 경우 멱등성을 가지고 있다면 Safe한데, DELETE는 멱등하지만 리소스를 변경하므로 Safe 하지 않다.
URI 는 네트워크 상 자원을 가리키는 일종의 고유 식별자(ID)
URL, URN 은 URI 에 포함되는 개념이며 URL 은 자원의 위치, URN 은 자원의 이름 을 의미
프로토콜 포함
해당 자원의 위치, Path를 의미
일반적으로 사이트 도메인을 자주 의미함.
웹 상 뿐만 아니라 컴퓨터 네트워크상의 자원은 모두 나타낼 수 있다.
프로토콜 포함 X
해당 자원의 이름을 의미
독립적인 자원 지시자
Page 이후 부분까지 포함