Representational State Transfer
자원을 이름으로 구분하여 자원의 상태 정보를 주고 받는 네트워크 아키텍처 원리의 모음이다.
HTTP URI를 통해 자원을 명시하고 HTTP Method를 통해 해당 자원에 대한 CRUD Operation을 적용한다.
Uniform Resource Identfier
자원을 식별하는 고유한 문자열 시퀀스

• Scheme: 리소스에 접근하기 위한 프로토콜
• Host: 리소스를 호스팅하는 서버 이름 또는 IP
• Port: 서버에서 리소스에 접근하기 위해 사용되는 게이트
• Path: 호스트 내에서 리소스의 정확한 위치
• Query Parameters: 리소스에 전달되는 추가정보
• Fragment Identifier: 부가적인 식별
자원에 대한 조작을 정의한다.
| 메소드 | 설명 |
|---|---|
GET /user/{userId} |
특정 사용자의 정보를 조회 |
POST /user |
특정 사용자를 등록 |
PUT /user/{userId} |
특정 사용자의 정보를 수정 |
DELETE /user/{userId} |
특정 사용자의 정보를 삭제 |
클라이언트의 요청에 따른 서버의 응답
JSON, XML, TEXT 등의 형태로 나타내며 JSON이 가장 많은 쓰인다.
{
"name": "Tom",
"age": 30,
"isEmployee": true
"phoneNumbers": ["123-123-123", "11-11-11]
}
경량의 데이터 교환 형식이며 key-value 의 집합 구조로 이뤄졌다
Application Programming Interface
정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성요소가 서로 통신할 수 있게 하는 메커니즘
인터페이스는 두 애플리케이션 간의 서비스 계약이라 볼 수 있으며 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의한다.
/로 계층 관계를 표현/를 붙이지 않음- 하이픈을 사용URL과 URI의 차이
URL: 어떻게 위치를 찾고 도달할 수 있는지까지 포함되어야 하기 때문에 프로토콜과 Host name이 결합한 상태
URI: Host name과 URL 모두 URI로 칭한다.